Решение: Максимальная подпоследовательность
Текстовый файл состоит из символов $T$, $U$, $V$, $W$, $X$, $Y$ и $Z$. Определите в прилагаемом файле максимальное количество идущих подряд символов (длину непрерывной подпоследовательности), среди которых символ $T$ встречается ровно 100 раз. Для выполнения этого задания следует написать программу.
Решение по шагам
3 шагаСчитываем содержимое файла и рассматриваем его как строку. Будем хранить левую границу текущего фрагмента, число символов $T$ в нём и максимальную найденную длину.
Двигаем правую границу по строке. Если очередной символ равен $T$, увеличиваем счётчик. Если количество символов $T$ стало больше 100, сдвигаем левую границу вправо, уменьшая счётчик при удалении символа $T$.
Когда в текущем окне ровно 100 символов $T$, сравниваем его длину с уже найденным максимумом. После обработки всего файла максимальная длина равна 133.
Где здесь ошибаются
Искать только самый короткий фрагмент со 100 символами $T$, а не максимальный.
Допускать в рассматриваемой подпоследовательности 101 и более символов $T$.
Не учитывать символы, отличные от $T$, между первым и последним символом $T$.