我们如何计算从左到右的出现次数,并一直持续到有连续的数字为止?

时间:2019-05-22 11:31:34

标签: c# c#-4.0 logic

因此,我编写的代码用于显示发生次数。假设在提到的示例部分中,如果我给定{2,1,1,1,3}的输入数组,它将使我出现2的次数为1。现在,我正在努力编写以某种方式进行编码,以便仅在从左到右连续的情况下才给我计数。假设,如果我的数组是{1,1,1,2,0},那么只有它会给我1的总出现次数为3,但是如果它是{1,0,1,2,1}或{0 ,0,1,1,1}或{1,1,2,2,1}

    static void Evaluate_V5B(int[] window, int[] PayCombos,)
            {
                int[] Counters1 = new int[3];

                for (int index0 = 0; index0 < 5; index0++)
                {
                    Console.Write("{0} ", window[index0]);
                    int symbol = window[index0];
                    Counters1[symbol]++;
                }
                Console.WriteLine();

    for (int indexJ = 0; indexJ < Counters1.Length; indexJ++)
                {
                    Console.WriteLine("{0}", Counters1[indexJ]);
                }
}

2 个答案:

答案 0 :(得分:0)

这将获取数组中的第一个元素,并从左到右返回连续出现的内容。如果在其他任何地方找到该元素,它将返回0作为计数:

static void Evaluate(int[] array)
{
    var count = 1;
    var first = array[0];

    for (int i = 1; i < array.Length; i++)
    {
        if(array[i] == first)
        {
            count++;
        }
        else{
            for (int j = i + 1; j < array.Length; j++)
            {
                if(first == array[j]) {
                    count = 0;
                    break;
                }
            }
            break;
        }
    }
    Console.WriteLine($"Count of Number {first} occurrence is {count}");
}

答案 1 :(得分:0)

此函数将查找数组num中特定数字nums的连续出现次数(如果它是第一个数字)。

static int ContinuousOccurrences(int[] nums, int num)
{
    if (nums[0] == num)
    {
        int continuousOccurrences =
            nums.TakeWhile(x => x == num).Count();

        int totalOccurrences =
            nums.Where(x => x == num).Count();

        if(continuousOccurrences == totalOccurrences)
        {
            return continuousOccurrences;
        }
        else
        {
            return 0;
        }

    }
    return 0;
}

如果您想知道第一个数字的连续出现次数,请按以下方式调用该函数:

ContinuousOccurrences(nums, nums[0])