面试题50. 第一个只出现一次的字符(简单)

在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。

示例:

s = “abaccdeff”
返回 “b”

s = “”
返回 “ “

限制:

0 <= s 的长度 <= 50000

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof

思路1:

典型哈希思想,使用数组计数,然后遍历,数组中第一个等于1的数被输出

代码1:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
public char firstUniqChar(String s) {
char[] c_str = s.toCharArray();
int[] count = new int[26];
for(char c:c_str){
count[c-'a']++;
}
//数组是按顺序的,但是如果是map的话,不一定输出第一个,map无序
for(char c:c_str){
if(count[c-'a']==1)
return c;
}
return ' ';
}
}