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

利用LinkedHashMap查找结果

解题思路

将便利字符串,将其存入LinkedHashMap,在遍历map找到value等于1的key并返回。

class Solution {
    public char firstUniqChar(String s) {
                 if(s.length()==0)
            return ' ';

        char[] chasrs = s.toCharArray();
        Map charsMap = new LinkedHashMap<>();
        for (int i = 0; i < chasrs.length;i++){
            Integer total = charsMap.get(chasrs[i]);
            if (total!=null) {
                charsMap.put(chasrs[i], total + 1);
            }else {
                charsMap.put(chasrs[i],1);
            }
        }

        for(Map.Entry entry:charsMap.entrySet()) {
            if(entry.getValue()==1){
                return entry.getKey();
            }
        }



        return ' ';

    }
}

你可能感兴趣的:(java,算法,算法,leetcode,数据结构,java)