Offer50第一个只出现一次的字符、
剑指 Offer 50. 第一个只出现一次的字符
在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。
示例:
s = “abaccdeff”
返回 “b”
s = “”
返回 " "
class Solution {
public char firstUniqChar(String s) {
HashMap<Character, Boolean>map =new HashMap<Character, Boolean>();
char[]ch =s.toCharArray();
for (char key : ch) {
map.put(key, !map.containsKey(key));
}
for(char key:ch) {
if(map.get(key)) {
return key;
}
}
return ' ';
}
}
第二种方法
Map<Character, Boolean> dic = new LinkedHashMap<>();
char[] sc = s.toCharArray();
for(char c : sc)
dic.put(c, !dic.containsKey(c));
for(Map.Entry<Character, Boolean> d : dic.entrySet()){
if(d.getValue()) return d.getKey();
}
return ' ';