24 задание ЕГЭ информатика: как решать, шаблон на Python

Кому: выпускнику · Обновлено 2026-10-25

Раздел: Информатика · Тема: Разборы заданий по номерам · Задание 24

24 задание ЕГЭ по информатике — это собственная программа обработки строки из файла: нужно прочитать символы, найти подстроку или подсчитать что-то по условию и вывести одно число. Решается оно циклом по строке, методом двух указателей или регулярным выражением, а язык удобнее всего взять Python. Ниже — порядок действий, готовые шаблоны и список ошибок, на которых теряют ответ.

Решить задание в тренажёре

Что проверяет 24 задание ЕГЭ по информатике в 2026 году

В задания «Программа обработки символьной информации» тебе дают файл с одной длинной строкой, например из латинских букв или цифр. Нужно написать свою программу: прочитать строку и получить число, например длину самой длинной подходящей подпоследовательности или количество вхождений. Ответ — целое число, поэтому проверяется только оно, а не код.

Формат и критерии оценивания на текущий год проверяй у разработчика экзамена: на fipi.ru в разделе демоверсий и спецификаций. Сколько первичных баллов даётся за задание, там указано в документах, и этот факт нужно брать оттуда, а не из пересказов. Подробнее о том, как читать такие материалы, есть в статье про демоверсии.

24 задание ЕГЭ по информатике: как решать по шагам

Порядок действий один и тот же для любого варианта. Он экономит время и не даёт запутаться в условии.

  • Выпиши из условия алфавит строки и что именно надо найти: длину, количество или позицию.
  • Определи, что считается «подходящей» подстрокой: подряд идущие символы или любые, пересекаются ли вхождения.
  • Прочитай файл и убери перевод строки: s = open('24.txt').readline().strip().
  • Выбери инструмент: простой цикл с счётчиком, два указателя или регулярное выражение.
  • Проверь программу на короткой строке, ответ для которой ты знаешь вручную, и только потом запускай на файле.
  • Выведи одно число и перепиши его в бланк без пробелов и лишних символов.

Пример задания из банка «Ранга»

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

Условие. Дана строка, состоящая из заглавных латинских букв A, B, C, D, E, F (в живом экзамене она лежит в прикреплённом файле, здесь приведена прямо в условии):

AAFACCFBDFBFEDFCCBFBECECABDEFCBBCFEEFBCDBABFADEFFABFBAEFCCDEBCAFEBACCCFCACDFEDBAEAFBAEEDBBBDFFAFBAECBCDCFADFEDDFCFEDEFAEAADDFABCAAEAFCFBDCFCBABDCCABBFDCABEEAFADCEBBFBFDAEBEEFDEDDCFEEBEEDDAFFECFEABBABDFBFFEEEBADBBEBDBCCAE

Определи максимальное количество идущих подряд одинаковых символов. В ответе запиши только целое число.

Показать ответ и решение
  1. Самая длинная цепочка одинаковых символов ищется одним проходом: счётчик растёт, пока символ повторяется, и сбрасывается в единицу при смене символа.
  2. Заведи две переменные: длину текущей цепочки и наибольшую из встреченных.

Ответ: 3

Решить похожие задания в тренажёре

Шаблон 24 задания на Python

Основа шаблона — чтение файла и цикл по индексам. Для задачи «максимум подряд одинаковых символов» он выглядит так:

Не забывай, что счётчик начинается с 1, а не с 0: один символ уже образует серию длины 1. Если строка может быть пустой или состоять из одного символа, цикл просто не выполнится, и ответ останется равным 1.

  • s = open('24.txt').readline().strip()
  • best = cur = 1
  • for i in range(1, len(s)):
  • if s[i] == s[i - 1]: cur += 1
  • else: cur = 1
  • best = max(best, cur)
  • print(best)

Метод двух указателей в 24 задании

Если надо найти самую длинную подстроку, в которой нет запрещённого фрагмента, перебор всех пар границ слишком медленный: строка бывает длиной около миллиона символов. Метод двух указателей проходит по строке один раз. Правый указатель r расширяет окно, а левый l сдвигается вправо, пока окно перестаёт нарушать условие.

Схема: для каждого r добавляешь символ s[r] в окно, пока окно неверное — сдвигаешь l, затем обновляешь ответ значением r - l + 1. Главное — правильно определить, что значит «окно неверное», и проверять только новый фрагмент на стыке, а не всё окно заново.

Регулярные выражения и римские цифры

Модуль re подходит, когда условие описывается шаблоном. Для самой длинной серии символов из набора достаточно: max(len(m.group()) for m in re.finditer(r'[ABC]+', s)). Если искомые вхождения могут пересекаться, обычный поиск их пропустит. Тогда используй просмотр вперёд: re.findall(r'(?=(AB))', s) найдёт все позиции, включая перекрывающиеся.

Римские цифры встречаются в условиях про строки из символов I, V, X, L, C, D, M. Корректность записи числа проверяют шаблоном и функцией fullmatch, а не вручную. Для чисел до 3999 подходит: M{0,3}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3}). Учти, что такой шаблон принимает и пустую строку, поэтому длину найденного фрагмента проверяй отдельно.

Типичные ошибки и как проверить себя

Большинство неверных ответов в этом задании связано не с алгоритмом, а с мелочами. Перед сдачей пробегись по списку.

  • Забытый strip(): символ перевода строки попадает в данные и меняет длину на единицу.
  • Неверное начало счётчика: 0 вместо 1 или лишний сдвиг на последнем символе.
  • Пересекающиеся вхождения посчитаны как непересекающиеся (str.count и findall без просмотра вперёд).
  • Обновление ответа забыто после цикла: последняя серия в конце строки не учтена.
  • Путаница между «длиной» и «количеством» подстрок, между индексом и номером символа с единицы.
  • Тест только на файле: на коротких строках типа 'AABBB' ответ проверяется за секунды.

Задания «в стиле Кабанова» и тренировка

Запрос про Кабанова обычно означает вариации из пособий этого автора: это те же типы, что и в демоверсии, только с другими условиями. Поэтому ориентируйся не на номер варианта, а на тип: серия подряд, окно, шаблон. Прорешай по одному заданию каждого типа и сохрани рабочий код как собственную заготовку.

Для тренировки есть задания с проверкой ответа в тренажёре «Ранг», а соседнее 23 задание пригодится для практики программирования. Если начинаешь с нуля, посмотри общий план подготовки по информатике.

Частые вопросы

Сколько баллов дают за 24 задание ЕГЭ по информатике?

Число первичных баллов за каждое задание указано в спецификации и демоверсии на fipi.ru, поэтому точное значение смотри там. Чтобы понять, как первичные баллы превращаются в тестовые, пользуйся актуальной шкалой перевода от Рособрнадзора.

Можно ли решать 24 задание не на Python?

Язык программирования можно выбрать любой, главное — получить верное число. Python удобен короткой работой со строками и модулем re, поэтому его выбирают чаще остальных.

Почему программа работает на примере, а на файле даёт неверный ответ?

Чаще всего причина в необработанном переводе строки, в пересекающихся вхождениях или в пропущенной последней серии. Проверь эти три места и сравни результат с ручным подсчётом на короткой строке.

Когда использовать метод двух указателей, а когда регулярные выражения?

Регулярные выражения подходят, если подстроку можно описать шаблоном. Два указателя нужны, когда условие зависит от состава окна и меняется при его сдвиге, например «не более двух разных символов».

Нужно ли знать теорию, если есть шаблон?

Шаблон помогает только на знакомых типах. Нужно уверенно владеть срезами, индексами, циклами и условиями, чтобы изменить заготовку под новое условие.

Полезно по теме

Читать дальше

Все статьи «Ранг» о подготовке к экзаменам

Проверить себя в тренажёре

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

Решить задание в тренажёре

Не уверен, что это вообще нужно? Бесплатный тест — 10 минут, без регистрации и без карты: сразу видно первичный балл

Материал — разъяснение «Ранг». Официальные правила экзамена, расписание, шкалы баллов и перечни заданий публикуют ФИПИ (fipi.ru) и Рособрнадзор (obrnadzor.gov.ru). Мы не обещаем конкретных баллов: результат зависит от твоей работы.