- 在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母
- 思路:
- 初始化一个Map
- 对字符进行统计,遍历字符串的每个字符c 1. 若包含键,则向dic中添加键值对(c,True) 2. 若不包含键,则将dic中的键值对修改为(c, False);
- 遍历字符串中的每个字符,找到第一个值为True的并输出
- 代码
class Solution {
public char firstUniqChar(String s) {
Map<Character, Boolean> dic = new LinkedHashMap<>();
char[] chs = s.toCharArray();
for (char c : chs) {
dic.put(c, !dic.containsKey(c));
}
for (Map.Entry<Character, Boolean> d : dic.entrySet()) {
if(d.getValue()) return d.getKey();
}return ' ';
}
}