美文网首页
算法----找到字符串中第一个不重复的字符

算法----找到字符串中第一个不重复的字符

作者: 咕哒咕 | 来源:发表于2021-02-26 08:56 被阅读0次

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

相关标签:哈希表

eg.

s = "saber"
返回 0

s = "tiktok"
返回 1

解法一:

两次遍历,第一次统计出现数量,第二次查找结果;

public int firstChar(String s) {
        int count[] = new int[26];
        char[] chars = s.toCharArray();
        for (int i = 0; i < s.length(); i++)
            count[chars[i] - 'a']++;// -'a' 确定下标   'a'-'a' = 0
        for (int i = 0; i < s.length(); i++)
            if (count[chars[i] - 'a'] == 1)
                return i;
        return -1;
    }

解法二:

同一,使用HashMap存储

class Solution {
    public int firstChar(String s) {
        Map<Character, Integer> map = new HashMap<>(26);
        char[] chars = s.toCharArray();
        for (char ch : chars) {
            map.put(ch, map.getOrDefault(ch, 0) + 1);
        }
        for (int i = 0; i < chars.length; i++) {
            if (map.get(chars[i]) == 1) {
                return i;
            }
        }
        return -1;
    }
}

相关文章

  • 2022-01-25

    1.字符串匹配BM算法 在文本中查找字符串匹配算法,坏字符串规则和好后缀规则坏字符串规则: 从后往前匹配,第一个不...

  • NSString 内查找多个重复指定子字符串的个数,位置

    字符串中查找单个不重复子字符串有"rangeOfString"这个方法可以找到,但是多个重复的字符串,就坑爹了,没...

  • 646. 第一个独特字符位置

    给出一个字符串。找到字符串中第一个不重复的字符然后返回它的下标。如果不存在这样的字符,返回 -1。样例给出字符串 ...

  • 2018-11-06 面试手撕代码题

    字符串变成整型数字 取出字符串中连续重复的字符,只保留一个 取出字符串中间的重复空格 常见排序算法 三种简单排序:...

  • Swift 字符串中的找到第一个唯一字符并打印它

    //这是最新的关于字符串中的第一个唯一字符的解法://给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。...

  • 459. Repeated Substring Pattern

    找到和第一个字符相同的字符,开始比对是否重复,如果重复,那么把字符串中相同的全部替换为空,如果结果为空,那么的确是...

  • Swift 字符串中的第一个唯一字符 - LeetCode

    题目:字符串中的第一个唯一字符 描述: 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则...

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

    387. 字符串中的第一个唯一字符 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回...

  • 387-字符串中的第一个唯一字符

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

  • 字符串中的第一个唯一字符

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

网友评论

      本文标题:算法----找到字符串中第一个不重复的字符

      本文链接:https://www.haomeiwen.com/subject/wwlsfltx.html