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