ЕГЭ · ЗАДАНИЕ 24
Строки, окна и последовательности · практика 11
В текстовом файле одна строка из A, B, C, D. Найдите максимальную длину её непрерывного фрагмента, содержащего не более 2 букв A. Завершающий перевод строки не является символом строки.
Учебная модель Академии С для проверки приёма. Не выдаётся за задание реального экзамена.
Файлы к заданию
ege-24-checkpoint-2.txtИсточник задания
Сначала попробуй решить самостоятельно, затем открой разбор. Для автоматической проверки ответа включи JavaScript.
Показать решение по шагам
Разбор решения
Ответ: 27
Решение по шагам
- Ищем непрерывный фрагмент, поэтому поддерживаем окно [left; right]. В нём должно быть не более 2 букв A.
- Добавляем очередной символ справа. Если A стало слишком много, сдвигаем левую границу, пока ограничение снова не выполнится. После этого длина окна равна right−left+1.
- Максимум = 27. Один из подходящих фрагментов занимает позиции 62–88 (считая от 1) и содержит 2 букв A.
CDCBBACDDDCBCADDCCBDDBCDDCD
Проверка на Python
s = open("ege-24-checkpoint-2.txt").read().strip()
left = count_a = best = 0
for right, char in enumerate(s):
count_a += char == "A"
while count_a > 2:
count_a -= s[left] == "A"
left += 1
best = max(best, right - left + 1)
print(best)