Информатика: ОГЭ и ЕГЭ

Тренировка ЕГЭ · задание 24 · фрагмент с двумя ограничениями

Задание 24 ЕГЭ: фрагмент с двумя ограничениями

Фрагмент с ограничениями на две буквы. Тема номера — обработка символьных строк. Ниже — пример с ответом и решением; кнопкой под ним можно решить такую же задачу с другими числами, ответ проверится сразу.

Пример

Задание выполняется с использованием прилагаемого файла.

Текстовый файл 24.txt содержит строку из заглавных латинских букв A, B, C, D, E, F, всего не более 10 000 символов.

Определите максимальное количество идущих подряд символов, среди которых буква A встречается не более 26 раз и буква D — не более 22 раз.

Для выполнения этого задания следует написать программу.

Скачать файл к примеру

Ответ187

Решение

Метод двух указателей: правый край окна идёт по строке, а левый сдвигается, пока в окне слишком много одной из букв. Каждое окно — самое длинное из заканчивающихся в данной позиции.

Ответ: 187.

s = open('24.txt').read().strip()
best = left = cx = cy = 0
for right, c in enumerate(s):
    cx += c == 'A'
    cy += c == 'D'
    while cx > 26 or cy > 22:      # окно нарушает условие — сдвигаем левый край
        cx -= s[left] == 'A'
        cy -= s[left] == 'D'
        left += 1
    best = max(best, right - left + 1)
print(best)

Решить такую задачу — новый вариант с проверкой

Задание 24 ЕГЭ: другие виды

Все задачи задания 24 вперемешку · разбор: как решать задание 24 · пробные варианты ЕГЭ