题目描述
在字符串中找出第一个只出现一次的字符。
如输入"abaccdeff",则输出b。
如果字符串中不存在只出现一次的字符,返回#字符。
样例描述
输入:"abaccdeff"
输出:'b'
思路
HashMap
统计每个字符出现的次数,然后遍历查询只出现一次的就是答案- 用
containsKey
先判断是否出现过,若没有出现过就设置该key
对应的value
为1。若出现过就用get
获取该键对应的值,并加一。
代码
class Solution {
public char firstNotRepeatingChar(String s) {
HashMap<Character,Integer> map=new HashMap<>();
for(int i=0;i<s.length();i++){
//没有出现过就加入进去
if(!map.containsKey(s.charAt(i))){
map.put(s.charAt(i),1);
}
else { //出现过就让其次数加一
//获取键对应的值
int count=map.get(s.charAt(i))+1;
map.put(s.charAt(i),count);
}
}
for(int i=0;i<s.length();i++){
if(map.get(s.charAt(i))==1){
return s.charAt(i);
}
}
return '#';
}
}