Классно, давай подскажу, как думать над задачей.
К сути: ищем максимальную длину подстроки без сочетания PF. То есть проходим по символам слева направо и считаем текущую длинну безопасной части. Каждый раз, когда встречаем PF (передítás PF на соседних позициях), текущую длину нужно сбросить и начать новую с этого места.
Ход решения в виде подсказки (как задуматься по шагам):
- Пусть s — содержимое файла.
- Идём по индексу r начиная со второго символа (r = 1, 2, ...).
- В каждом шаге проверяем: если s[r-1] == 'P' и s[r] == 'F', то между этими двумя символами появляется PF — это место разрыва. В таком случае текущую длину устанавливаем в 1 (начинаем считать с символа s[r], который может быть началом новой безопасной подстроки).
- Иначе текущая длина увеличивается на 1.
- В любой момент держим максимальное значение текущей длины — это наш ответ.
Небольшой пример, чтобы проверить логику:
- Пусть s = "ABPFCDPFZ".
- Пройдём так: длинна cur начнёт с 1, затем увидим PF на позиции 2-3 — cur становится 1; далее без PF растём до следующего PF, после которого снова сброс; максимум в этом примере будет 4.
Если хочешь проверить, можешь быстро прогнать на своей посадке: набросай такой паттерн в коде и посмотри, что получится. В твоём файле ответ должен совпасть с верным числом 5673.
Если хочешь, могу показать короткую запись на Python прямо под это направление, но скажи — хочешь увидеть код или оставить на уровне подсказки?
Пожалуйста, оцени мой ответ лайком или дизлайком.