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

题目描述:

在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。

示例:
s = “abaccdeff”
返回 “b”

s = “”
返回 " "

限制:
0 <= s 的长度 <= 50000

JAVA代码如下:

class Solution {
    
    
    public char firstUniqChar(String s) {
    
    
        HashMap<Character, Integer> map = new LinkedHashMap<>();
        int n = s.length();
        char c=' ';
        for (char ch : s.toCharArray()) {
    
    
            map.put(ch, map.getOrDefault(ch, 0) + 1);
        }
        for (var entry : map.entrySet()) {
    
    
            if(entry.getValue()==1){
    
    
                c=entry.getKey();
                break;
            }
        }
        return c;
    }
}
class Solution {
    
    
    public char firstUniqChar(String s) {
    
    
        HashMap<Character, Integer> map = new LinkedHashMap<>();
        int n = s.length();
        char c=' ';
        for (char ch : s.toCharArray()) {
    
    
            map.put(ch, map.getOrDefault(ch, 0) + 1);
        }
        for (Character key : map.keySet()) {
    
    
            Integer v = map.get(key);
            if (v == 1) {
    
    
                c = key;
                break;
            }
        }
        return c;
    }
}

执行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/FYPPPP/article/details/113574951