题目描述
在字符串中找出第一个只出现一次的字符。
如输入"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 '#';
}
}
本文介绍如何使用HashMap统计字符串中字符出现次数,然后找出第一个只出现一次的字符,若不存在则返回'#'。通过实例代码演示了查找过程。
684

被折叠的 条评论
为什么被折叠?



