题目
在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。
示例 1:
输入:s = "abaccdeff"
输出:'b'
示例 2:输入:s = ""
输出:' '
限制:
0 <= s 的长度 <= 50000
思路
可以使用哈希表。先遍历字符串s,用哈希表统计各个字符数量是否大于1,再遍历s,在哈希表中找到第一个数量为1的字符并返回。
实现代码
class Solution {
public char firstUniqChar(String s) {
HashMap<Character, Boolean> dic = new HashMap<>();
char[] sc = s.toCharArray();
for(char c : sc)
dic.put(c, !dic.containsKey(c));
for(char c : sc)
if(dic.get(c)) return c;
return ' ';
}
}
运行结果