Шешімі: Максимальная цепочка символов
Текстовый файл состоит не более чем из 1 200 000 символов $A$, $B$, $C$ и $D$. Определите максимальное количество идущих подряд символов, среди которых нет символов $B$ и $D$, стоящих рядом. Для выполнения этого задания следует написать программу.
Шешім по шагам
3 қадамНужно найти самый длинный непрерывный фрагмент, в котором нигде не встречается соседняя пара $BD$ или $DB$.
Файл просматривают однократно. Для каждой пары соседних символов проверяют, являются ли они $B$ и $D$ в любом порядке. Если да, текущая длина фрагмента сбрасывается до 1; иначе она увеличивается на 1.
$$p_i=B\land p_{i+1}=D\quad\text{или}\quad p_i=D\land p_{i+1}=B$$Во время просмотра сохраняют максимальное значение текущей длины. Для данного файла максимальная длина такого фрагмента равна 104.
$$\max L=104$$Где здесь ошибаются
Сбрасывают длину только при появлении символа $B$ или $D$, не проверяя соседство.
Учитывают только пару $BD$, но забывают про обратную пару $DB$.
После найденной запрещённой пары начинают жаңа фрагмент с длины 0 вместо 1.