使用Unordered_map C ++字符串中的第一个唯一字符

斯里

我正在尝试使用c ++中的unordered_map查找字符串的第一个唯一字符。LeetCodeProblem我的代码:

int firstUniqChar(string s) {
    unordered_map<char,int> m;
    for(int i=0;i<s.length();i++){
        m[s[i]]++;
    }
    unordered_map<char,int>::iterator mit;
    for(mit=m.begin();mit!=m.end();mit++){
        if(mit->second ==1)
            for(int i=0;i<s.length();i++){
                if(mit->first == s[i])
                    return i;
            }
    }
    return -1;
}

输出不正确。如果我尝试在Eclipse中调试它,则无法解析unordered_map。我在代码中找不到错误。请帮助我理解该错误。

nishantsingh

unordered_map不能确保元素按插入顺序存储。因此,当您遍历它时,不能保证第一个元素为second1的第一个唯一字符必须是它。

您应该改为遍历字符串:

int firstUniqChar(string s) {
    unordered_map<char,int> m;
    for(int i=0;i<s.length();i++){
        m[s[i]]++;
    }

    for (int i = 0; i < s.length(); i++){
      if (m[s[i]] == 1) {
        return i;
      }
    }
    return -1;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用LinkedHashMap的字符串中的第一个唯一字符

来自分类Dev

使用LinkedHashMap的字符串中的第一个唯一字符

来自分类Dev

为什么这个C程序在字符串中找到第一个唯一字符太慢?

来自分类Dev

使用哈希 C++ 找到具有 k 个不同/唯一字符的最长子串

来自分类Dev

避免在C ++ 11原始字符串文字中使用第一个换行符?

来自分类Dev

使用C#从字符串中删除第一个字符

来自分类Dev

一对值的unordered_map C ++

来自分类Dev

从C ++中的unordered_map访问值

来自分类Dev

使用C#在第一个空格(空格)上剪切字符串

来自分类Dev

如何使用指针在C的第一个空格上拆分字符串?

来自分类Dev

如何使用 c# 从较长的字符串中检索第一个字母字符串

来自分类Dev

在C ++中如何在const unordered_map上使用“ []”运算符来解决?

来自分类Dev

在C ++中将unordered_map与自定义值对象一起使用

来自分类Dev

使用C ++根据行中的第一个字符串查找行(仅一个)

来自分类Dev

C ++中的unordered_map :: emplace和unordered_map :: ins有什么区别?

来自分类Dev

unordered_map 在 rcpp 中的使用

来自分类Dev

C ++-unordered_map运算符[],意外行为

来自分类Dev

C ++在unordered_map中存储类的静态方法

来自分类Dev

在C ++中修改std :: unordered_map元素的值

来自分类Dev

C ++将类的静态方法存储在unordered_map中

来自分类Dev

在向量中引用unordered_map的C ++ 11 segfault

来自分类Dev

C ++中unordered_map的条目的类型是什么

来自分类Dev

在C ++中修改std :: unordered_map元素的值

来自分类Dev

如何在C ++中插入unordered_map?

来自分类Dev

C#:如果某些字符是使用正则表达式的字符串的第一个字符,则替换它们

来自分类Dev

C ++ unordered_map防止为字符串键重新分配内存

来自分类Dev

C ++ unordered_map防止为字符串键重新分配内存

来自分类Dev

使用if in in == False来存储唯一字符串

来自分类Dev

使用唯一字符串设置默认适配器

Related 相关文章

  1. 1

    使用LinkedHashMap的字符串中的第一个唯一字符

  2. 2

    使用LinkedHashMap的字符串中的第一个唯一字符

  3. 3

    为什么这个C程序在字符串中找到第一个唯一字符太慢?

  4. 4

    使用哈希 C++ 找到具有 k 个不同/唯一字符的最长子串

  5. 5

    避免在C ++ 11原始字符串文字中使用第一个换行符?

  6. 6

    使用C#从字符串中删除第一个字符

  7. 7

    一对值的unordered_map C ++

  8. 8

    从C ++中的unordered_map访问值

  9. 9

    使用C#在第一个空格(空格)上剪切字符串

  10. 10

    如何使用指针在C的第一个空格上拆分字符串?

  11. 11

    如何使用 c# 从较长的字符串中检索第一个字母字符串

  12. 12

    在C ++中如何在const unordered_map上使用“ []”运算符来解决?

  13. 13

    在C ++中将unordered_map与自定义值对象一起使用

  14. 14

    使用C ++根据行中的第一个字符串查找行(仅一个)

  15. 15

    C ++中的unordered_map :: emplace和unordered_map :: ins有什么区别?

  16. 16

    unordered_map 在 rcpp 中的使用

  17. 17

    C ++-unordered_map运算符[],意外行为

  18. 18

    C ++在unordered_map中存储类的静态方法

  19. 19

    在C ++中修改std :: unordered_map元素的值

  20. 20

    C ++将类的静态方法存储在unordered_map中

  21. 21

    在向量中引用unordered_map的C ++ 11 segfault

  22. 22

    C ++中unordered_map的条目的类型是什么

  23. 23

    在C ++中修改std :: unordered_map元素的值

  24. 24

    如何在C ++中插入unordered_map?

  25. 25

    C#:如果某些字符是使用正则表达式的字符串的第一个字符,则替换它们

  26. 26

    C ++ unordered_map防止为字符串键重新分配内存

  27. 27

    C ++ unordered_map防止为字符串键重新分配内存

  28. 28

    使用if in in == False来存储唯一字符串

  29. 29

    使用唯一字符串设置默认适配器

热门标签

归档