原题:点击此处
题解:
很容易想到用哈希表来进行处理。
这里可以用有序的哈希表(LinkedHashMap),来进行判断。
时间复杂度O(n)
空间复杂度O(1)(因为必定只有26个字母)
class Solution {
public char firstUniqChar(String s) {
Map<Character,Boolean> linkMap = new LinkedHashMap<>();
char[] chs = s.toCharArray();
for(char ch:chs){
linkMap.put(ch,!linkMap.containsKey(ch));
}
for(Map.Entry<Character,Boolean> entry:linkMap.entrySet()){
if(entry.getValue()){
return entry.getKey();
}
}
return ' ';
}
}