Как мы посчитаем количество вхождений слева направо и продолжим, пока у нас не появятся последовательные числа? - PullRequest
0 голосов
/ 22 мая 2019

Так что код, который я написал, предназначен для числа вхождений. Предположим, в упомянутой части примера, если я задаю входной массив {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 голосов
/ 22 мая 2019

Эта функция найдет количество непрерывных вхождений определенного числа 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])
0 голосов
/ 22 мая 2019

Это займет 1-й элемент в массиве и вернет непрерывные вхождения слева направо. Если этот элемент найден где-либо еще, он вернет 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}");
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...