Leetcode——第一个只出现一次的字符

Posted Yawn,

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode——第一个只出现一次的字符相关的知识,希望对你有一定的参考价值。

1.题目

2. 题解

(1)HashMap存出现次数是否大于1

class Solution {
    public char firstUniqChar(String s) {
        if(s == null)
            return ' ';
        
        //存放字符,字符是否已存在
        HashMap<Character, Boolean> map = new HashMap<>();
        for(int i = 0; i < s.length();i++){
            map.put(s.charAt(i), !map.containsKey(s.charAt(i)));
        }

        //找第一个只出现一次的字符
        for(int i = 0; i < s.length();i++){
            if(map.get(s.charAt(i)))
                return s.charAt(i);
        }
        return ' ';
    }
}

(2)HashMap存频数

class Solution {
    public char firstUniqChar(String s) {
        Map<Character, Integer> frequency = new HashMap<Character, Integer>();
        
        for (int i = 0; i < s.length(); ++i) {
            char ch = s.charAt(i);
            frequency.put(ch, frequency.getOrDefault(ch, 0) + 1);
        }
        
        for (int i = 0; i < s.length(); ++i) {
            if (frequency.get(s.charAt(i)) == 1) {
                return s.charAt(i);
            }
        }
        return ' ';
    }
}

以上是关于Leetcode——第一个只出现一次的字符的主要内容,如果未能解决你的问题,请参考以下文章

[LeetCode]剑指 Offer 50. 第一个只出现一次的字符

Leetcode——第一个只出现一次的字符

leetcode-第一个只出现一次的字符-65

LeetCode 260 只出现一次的数字(超详细)

Leetcode刷题100天—剑指 Offer 50. 第一个只出现一次的字符(队列)—day13

剑指 Offer 50. 第一个只出现一次的字符