Вывести максимальную длину одинаковых символов в бинарной последовательности

Есть последовательность из 1 и 0.

Если ввести 0000100, то должно вывести 4 потому что 4 нуля это максимум нулей подряд, но выводит 2.

Также и с единицей например, если ввести 1111011, то выведет 2, а не 4.

Где у меня ошибка?

static void Main(string[] args)
        {
            string subs = Console.ReadLine();

            int ammountOfZeros = 0;
            int ammountOfUnits = 0;
            int LenghtOfSubs = 0;
            int temp = 0;

             for(int i = 0; i < subs.ToString().Length;i++)
            {
                for (int j = 1; j < subs.ToString().Length; j++)
                {
                    if (subs[i] == '0' & subs[j] == '0')
                    {
                      if (subs[i].Equals('0') & subs[j].Equals('0'))
                    {
                        LenghtOfSubs++;
                        ammountOfZeros = LenghtOfSubs;
                    }
                    else
                    {
                        LenghtOfSubs = 0;
                    }
                    }
                }
            }
             LenghtOfSubs=0;
            for (int i = 0; i < subs.ToString().Length; i++)
            {
                for (int j = 1; j < subs.ToString().Length; j++)
                {
                    if (subs[i].Equals('1') & subs[j].Equals('1'))
                    {
                        LenghtOfSubs++;
                        ammountOfUnits = LenghtOfSubs;
                    }
                    else
                    {
                        LenghtOfSubs = 0;
                    }
                }
            }

            Console.WriteLine(($"{ammountOfZeros}  {ammountOfUnits}"));
            Console.ReadKey();
        }

Ответы (1 шт):

Автор решения: DaraHessesh

У вас в частях ammountOfZeros = LenghtOfSubs; и ammountOfUnits = LenghtOfSubs; идет присвоение длины последней последовательности из одинаковых символов, а не наибольшей.
Советую их заключить в

if (ammountOfZeros < LenghtOfSubs){
    ammountOfZeros = LenghtOfSubs;
}

и

if (ammountOfUnits < LenghtOfSubs){
    ammountOfUnits = LenghtOfSubs;
}

Соответственно.

→ Ссылка