Обработка строк в ЕГЭ по информатике: самая длинная цепочка символов на Python

· 2 мин чтения · Редакция Skill Unit

В ЕГЭ по информатике есть задача с текстовым файлом, в котором одна очень длинная строка из букв. Вручную её не обработать, а программа на Python укладывается в десять строк. Почти все варианты сводятся к одному приёму — проходу по строке со счётчиком текущей цепочки.

Чтение файла

Пример
s = open('24.txt').read().strip()

strip() убирает перевод строки в конце: без него последний символ может испортить подсчёт.

Шаблон 1. Самая длинная цепочка одинаковых символов

Python
best = cur = 1
for i in range(1, len(s)):
    if s[i] == s[i - 1]:
        cur += 1
        best = max(best, cur)
    else:
        cur = 1
print(best)

Проверка на строке AABBBCAAAACBB: цепочки AA, BBB, C, AAAA, C, BB. Самая длинная — AAAA, программа печатает 4.

Шаблон 2. Самый длинный фрагмент без буквы C

Python
best = cur = 0
for ch in s:
    if ch != 'C':
        cur += 1
        best = max(best, cur)
    else:
        cur = 0
print(best)

Для той же строки фрагменты без C: AABBB (5), AAAA (4), BB (2). Ответ 5.

Шаблон 3. Через регулярные выражения

Если условие можно описать как «подряд идущие символы из набора», удобно использовать модуль re:

Python
import re
parts = re.findall(r'[AB]+', s)
print(max(len(p) for p in parts))

Для примера это снова 5: самый длинный кусок только из A и B — AABBB.

Как не ошибиться

  • Всегда проверяйте код на маленькой строке, ответ к которой посчитали руками.
  • Следите за начальными значениями: в шаблоне 1 цепочка из одного символа уже имеет длину 1, в шаблоне 2 счёт начинается с 0.
  • Не забывайте обновлять максимум внутри цикла, а не только при смене символа — иначе потеряете цепочку в самом конце строки.
  • Строка длиной в миллион символов обрабатывается за доли секунды; если программа «висит», скорее всего в ней вложенный цикл.

Все задания с программированием, разбор шаблонов и пробные варианты — в курсе подготовки к ЕГЭ по информатике. «Быстрый старт» бесплатный.

Хотите пройти путь на практике?

Курс «ЕГЭ по информатике»: короткие уроки, практические задания и проверка ответов. Первый урок бесплатно.

Смотреть курс