ЕГЭ 2026 · Задание 24

Обработка символьных строк

Линейный проход по строке, счётчики серий и поиск максимального фрагмента.

Высокий уровеньPythonСтроки45–60 мин✓ Полный урок
01

Что нужно понимать

Линейный проход по строке, счётчики серий и поиск максимального фрагмента.

O(n)

Один проход

Для строки до миллиона символов обычно нужен линейный алгоритм.

cur

Текущая серия

Счётчик длины подходящего фрагмента, заканчивающегося в текущей позиции.

best

Максимум

Лучший результат обновляется после каждого шага.

Ключевая идея

Сначала сформулируйте, когда текущая серия продолжается, а когда должна сброситься. Большинство задач №24 решаются одним проходом без вложенных циклов.

02

Надёжный алгоритм решения

1

Считай строку

Удали только перевод строки, если он не относится к данным.

2

Определи условие продолжения

Например, соседние символы должны различаться.

3

Обновляй cur

Если условие выполнено — увеличь; иначе начни новую серию.

4

Обновляй best

best=max(best,cur).

5

Проверь границы

Отдельно подумай о первом символе и последнем обновлении.

Типичная ошибка: Не используйте полный перебор всех подстрок: он может дать O(n²) и не пройти на файле из сотен тысяч или миллионов символов.
03

Пошаговый разбор

Найдём максимальную длину фрагмента строки ABACCCABBAAC, в котором соседние символы различны.

Исходные данныеМодель
s = "ABACCCABBAAC"
cur = best = 1
for i in range(1, len(s)):
    cur = cur + 1 if s[i] != s[i-1] else 1
    best = max(best, cur)
РезультатРазбор

Серия ABAC имеет длину 4. На следующей паре C–C серия сбрасывается.

Итоговый максимум: 4.

РазборОткрывай шаги по очереди

Для непустой строки cur=best=1.

Если s[i] != s[i-1], серия продолжается; иначе cur=1.

Каждый символ обрабатывается один раз: O(n) по времени и O(1) дополнительной памяти.

04

Тренажёр

Ответь на оба вопроса. Правильные ответы автоматически отмечают практику выполненной.

Практика

Закрепи алгоритм

2 вопроса

Для строки ABACCCABBAAC какова максимальная длина серии с различными соседями?

Какова асимптотика одного линейного прохода по строке длины n?

05

Шпаргалка на экзамен

  1. Формализуй условие продолжения серии.
  2. Храни текущий cur и глобальный best.
  3. Стремись к O(n).
  4. Не забудь обработать первый символ и конец строки.
Урок 24 завершён

Продолжай по маршруту

Прогресс урока сохраняется локально в браузере.

Тематика «Обработка символьных строк» сверена с актуальным каталогом ЕГЭ‑2026; примеры и тренажёры ТурбоУроки составлены самостоятельно. Каталог заданий ↗