如何从数组中找到第n个重复项

海豹突击队

我正在尝试解决问题。

基本上,我需要从字符数组中选择第二个重复项。

Input {'x','y','z','x','y'} output: y
Input { 'a', 'a', 'b', 'a', 'c', 'b', 'a', 'c', 'b' } Output: b
Input { 'a','a','a','b','a','c','b','a','c','b' } output: b

编辑:

Input {'a', 'b', 'c', 'b', 'a', 'c', 'b', 'a', 'c', 'b'} Output: a

我已经尝试编写这段代码,但是如果第一个字符立即重复出现,它会失败:(有任何纠正的帮助吗?

 public static char returnSecondDuplicate(char[] arr)
        {
            if (arr.Length == 0)
                throw new ArgumentNullException("empty input");
            var dictionary = new Dictionary<char, int>();
            Char second = '\0';
            int duplicateCount = 0;

            for (int i = 0; i <= arr.Length - 1; i++)
            {

                if (!dictionary.ContainsKey(arr[i]))
                {
                    dictionary.Add(arr[i], 1);
                }
                else
                {
                    duplicateCount++;

                    if (duplicateCount == 2)
                    {
                        second = arr[i];
                    }
                }
            }

            return second;
        }
毛47

问题是您要计算的是重复的总数,而不是单个字符的重复数。

给出了一些linq答案,但是如果您想知道如何修复现有代码,则可以执行以下操作:

public static char returnSecondDuplicate(char[] arr)
{
    if (arr.Length == 0)
        throw new ArgumentNullException("Empty Array passed");
    var dictionary = new Dictionary<char, int>();
    char firstDuplicate = '\0';

    for (int i = 0; i <= arr.Length - 1; i++)
    {

        if (!dictionary.ContainsKey(arr[i]))
        {
            dictionary.Add(arr[i], 1);
        }
        else if (firstDuplicate == '\0')
        {
            firstDuplicate = arr[i];
        }
        else if(arr[i] != firstDuplicate)
        {
            return arr[i];
        }

    }

    return '\0'; //not found
}

基本上,您必须跟踪先复制哪个字母。有了第一个重复项后,请检查后续重复的字母是否相同。第一个不同的重复项是您要返回的内容。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从数组中找到第n个重复项

来自分类Dev

在数组中找到一个总和,在O(n)中有重复项

来自分类Dev

在int数组中找到第n个最大的数组

来自分类Dev

如何从此php数组中找到模糊重复项?

来自分类Dev

如何在php中找到多维数组重复项?

来自分类Dev

如何在PHP数组中找到第N个最常见的值?

来自分类Dev

如何从数组中找到第100个最大的数字

来自分类Dev

如何在Prolog中找到列表的第N个元素

来自分类Dev

jquery如何从元素变量中找到第n个孩子

来自分类Dev

如何在Python中找到正则表达式的第N个匹配项的起始位置?

来自分类Dev

如何从 kNeighborsClassifier 中找到前 n 个匹配项?

来自分类Dev

在 hive 中找到第 n 个值

来自分类Dev

如何使用一些从角度6的数组列表中找到重复项?

来自分类Dev

R : 查找第 n 个重复项

来自分类Dev

在找到最大的价值,第N个最大的价值和其他价值之前?(而忽略重复项)

来自分类Dev

如何在数组b中找到第[i]个元素

来自分类Dev

在一个numpy数组中找到n个最小的项

来自分类Dev

在数组中找到第K个最大的整数

来自分类Dev

在数组中找到第K个匹配结果?

来自分类Dev

如何在C ++中找到向量的第m个和第n个元素之间的max元素?

来自分类Dev

如何从mxn阶的排序矩阵中找到第N个最大值

来自分类Dev

如何在满足某些条件的列表中找到第n个顺序值的索引?

来自分类Dev

如何在类似XML的文本文件中找到包含单词的第n个“ <”符号?

来自分类Dev

如何在列中找到最大值,跳到第n个值?

来自分类Dev

在Notepad ++中,如何在一行中找到第n个“ \”?

来自分类Dev

如何在iOS的tableview中找到第n个索引路径?

来自分类Dev

如何在数组数组中找到频繁项

来自分类Dev

如何在两个元组列表中找到前 n 个重叠项(Python)

来自分类Dev

在O(log n)中找到第k个最小元素

Related 相关文章

  1. 1

    如何从数组中找到第n个重复项

  2. 2

    在数组中找到一个总和,在O(n)中有重复项

  3. 3

    在int数组中找到第n个最大的数组

  4. 4

    如何从此php数组中找到模糊重复项?

  5. 5

    如何在php中找到多维数组重复项?

  6. 6

    如何在PHP数组中找到第N个最常见的值?

  7. 7

    如何从数组中找到第100个最大的数字

  8. 8

    如何在Prolog中找到列表的第N个元素

  9. 9

    jquery如何从元素变量中找到第n个孩子

  10. 10

    如何在Python中找到正则表达式的第N个匹配项的起始位置?

  11. 11

    如何从 kNeighborsClassifier 中找到前 n 个匹配项?

  12. 12

    在 hive 中找到第 n 个值

  13. 13

    如何使用一些从角度6的数组列表中找到重复项?

  14. 14

    R : 查找第 n 个重复项

  15. 15

    在找到最大的价值,第N个最大的价值和其他价值之前?(而忽略重复项)

  16. 16

    如何在数组b中找到第[i]个元素

  17. 17

    在一个numpy数组中找到n个最小的项

  18. 18

    在数组中找到第K个最大的整数

  19. 19

    在数组中找到第K个匹配结果?

  20. 20

    如何在C ++中找到向量的第m个和第n个元素之间的max元素?

  21. 21

    如何从mxn阶的排序矩阵中找到第N个最大值

  22. 22

    如何在满足某些条件的列表中找到第n个顺序值的索引?

  23. 23

    如何在类似XML的文本文件中找到包含单词的第n个“ <”符号?

  24. 24

    如何在列中找到最大值,跳到第n个值?

  25. 25

    在Notepad ++中,如何在一行中找到第n个“ \”?

  26. 26

    如何在iOS的tableview中找到第n个索引路径?

  27. 27

    如何在数组数组中找到频繁项

  28. 28

    如何在两个元组列表中找到前 n 个重叠项(Python)

  29. 29

    在O(log n)中找到第k个最小元素

热门标签

归档