387. 字符串中的第一个唯一字符

 这篇文章会收录到 :算法通关村第十二关-白银挑战字符串经典题目-CSDN博客

387. 字符串中的第一个唯一字符

描述 :

给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。

题目 :

387. 字符串中的第一个唯一字符

387. 字符串中的第一个唯一字符_第1张图片


分析 :

我们可以对字符串进行两次遍历,在第一次遍历时,我们使用哈希映射统计出字符串中每个字符出现的次数。在第二次遍历时,我们只要遍历到了一个只出现一次的字符,那么就返回它的索引,否则在遍历结束后返回 -1。

解析 :

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

        for(int i = 0; i < s.length();i++ ){
            char c = s.charAt(i);
            if(map.get(c) == 1){
                return i;
            }
        }
        return -1;
    }
}


这期就到这里 , 下期见!

你可能感兴趣的:(java,算法,开发语言)