leetcode链接:https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof/
在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。
示例:
s = "abaccdeff" 返回 "b" s = "" 返回 " "
解题思路:首先将字符串转换为数组,使用一个hashmap来辅助计算,遍历字符数组,将每个字符作为key,是否已经加入集合的布尔值作为value,最后遍历数组,返回第一个map中value为true的字符即是所求字符。
class Solution {
public char firstUniqChar(String s) {
Map<Character,Boolean> hashMap = new HashMap<>();
char[] array = s.toCharArray();
for(char a:array){
hashMap.put(a,!hashMap.containsKey(a));
}
for(char a : array){
if(hashMap.get(a)){
return a;
}
}
return ' ';
}
}