欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-10 13:28:54
...

题目链接
在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。

示例:

s = “abaccdeff”
返回 “b”

s = “”
返回 " "

限制:

0 <= s 的长度 <= 50000

转载自题解链接

代码

class Solution {
    public char firstUniqChar(String s) {
        //此处使用LinkedHashMap是因为其可以保证存入的数据有序,取value时不需要
        //再遍历一遍原数组以获得key在原数组中的顺序
        Map<Character,Boolean> map =new LinkedHashMap<>();
        char[] sc = s.toCharArray();
        for(char c: sc){
            map.put(c,!map.containsKey(c));
        }
        Set<Character> key = map.keySet();
        for(Character c :key){
            if(map.get(c)==true){
                return c;
            }
        }
        return ' ';
    }
}
相关标签: 算法