在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。
题解
利用 HashMap 容器来解题
两次循环,注意第二次循环仍然是遍历字符串,而不是遍历容器的所有 value 值
class Solution {
HashMap<Character,Integer> hashMap = new HashMap<>();
public char firstUniqChar(String s) {
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
if(hashMap.containsKey(ch)){
hashMap.put(ch,hashMap.get(ch)+1);
}else{
hashMap.put(ch,1);
}
}
for (int i = 0; i < s.length(); i++) {
if(hashMap.get(s.charAt(i))==1){
return s.charAt(i);
}
}
// 使用遍历 hashmap 容器,可能导致出现一次的字符不是第一次出现的
// for(Character key: hashMap.keySet()){
// if(hashMap.get(key).equals(1)){
// return key;
// }
// }
return ' ';
}
}