第一个只出现一次的字符~

160 阅读1分钟
  • 在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母
  • 思路:
  1. 初始化一个Map
  2. 对字符进行统计,遍历字符串的每个字符c 1. 若包含键,则向dic中添加键值对(c,True) 2. 若不包含键,则将dic中的键值对修改为(c, False);
  3. 遍历字符串中的每个字符,找到第一个值为True的并输出
  • 代码
class Solution {
    public char firstUniqChar(String s) {
        Map<Character, Boolean> dic = new LinkedHashMap<>();
        char[] chs = s.toCharArray();
        for (char c : chs) {
            dic.put(c, !dic.containsKey(c));
        }
        for (Map.Entry<Character, Boolean> d : dic.entrySet()) {
            if(d.getValue()) return d.getKey();
            
        }return ' ';
    }
}