数据结构和算法LeetCode,初级算法-14字符串中的第一个唯一字符

Posted 数据结构和算法

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构和算法LeetCode,初级算法-14字符串中的第一个唯一字符相关的知识,希望对你有一定的参考价值。

截止到目前我已经写了 600多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载
下载链接https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ
提取码:6666


视频讲解

LeetCode,初级算法-字符串中的第一个唯一字符

B站视频合集:https://www.bilibili.com/video/BV19v4y1g759


代码部分

解法一

    public int firstUniqChar(String s) 
        int count[] = new int[26];
        char[] chars = s.toCharArray();
        //先统计每个字符出现的次数
        for (int i = 0; i < s.length(); i++)
            count[chars[i] - 'a']++;
        //然后在遍历字符串s中的字符,如果出现次数是1就直接返回
        for (int i = 0; i < s.length(); i++)
            if (count[chars[i] - 'a'] == 1)
                return i;
        return -1;
    

解法二

    public int firstUniqChar(String s) 
        Map<Character, Integer> map = new HashMap();
        char[] chars = s.toCharArray();
        //先统计每个字符的数量
        for (char ch : chars) 
            map.put(ch, map.getOrDefault(ch, 0) + 1);
        
        //然后在遍历字符串s中的字符,如果出现次数是1就直接返回
        for (int i = 0; i < s.length(); i++) 
            if (map.get(chars[i]) == 1) 
                return i;
            
        
        return -1;
    

解法三

    public int firstUniqChar(String s) 
        for (int i = 0; i < s.length(); i++)
            if (s.indexOf(s.charAt(i)) == s.lastIndexOf(s.charAt(i)))
                return i;
        return -1;
    

以上是关于数据结构和算法LeetCode,初级算法-14字符串中的第一个唯一字符的主要内容,如果未能解决你的问题,请参考以下文章

数据结构和算法LeetCode,初级算法-14字符串中的第一个唯一字符

数据结构和算法LeetCode,初级算法-12反转字符串

数据结构和算法LeetCode,初级算法-12反转字符串

数据结构和算法LeetCode,初级算法-12反转字符串

初级算法14. 字符串中的第一个唯一字符

LeetCode初级算法的Python实现--字符串