24 задание ЕГЭ информатика: как решать, шаблон на Python
24 задание ЕГЭ по информатике — это собственная программа обработки строки из файла: нужно прочитать символы, найти подстроку или подсчитать что-то по условию и вывести одно число. Решается оно циклом по строке, методом двух указателей или регулярным выражением, а язык удобнее всего взять Python. Ниже — порядок действий, готовые шаблоны и список ошибок, на которых теряют ответ.
Что проверяет 24 задание ЕГЭ по информатике в 2026 году
В задания «Программа обработки символьной информации» тебе дают файл с одной длинной строкой, например из латинских букв или цифр. Нужно написать свою программу: прочитать строку и получить число, например длину самой длинной подходящей подпоследовательности или количество вхождений. Ответ — целое число, поэтому проверяется только оно, а не код.
Формат и критерии оценивания на текущий год проверяй у разработчика экзамена: на fipi.ru в разделе демоверсий и спецификаций. Сколько первичных баллов даётся за задание, там указано в документах, и этот факт нужно брать оттуда, а не из пересказов. Подробнее о том, как читать такие материалы, есть в статье про демоверсии.
24 задание ЕГЭ по информатике: как решать по шагам
Порядок действий один и тот же для любого варианта. Он экономит время и не даёт запутаться в условии.
- Выпиши из условия алфавит строки и что именно надо найти: длину, количество или позицию.
- Определи, что считается «подходящей» подстрокой: подряд идущие символы или любые, пересекаются ли вхождения.
- Прочитай файл и убери перевод строки: s = open('24.txt').readline().strip().
- Выбери инструмент: простой цикл с счётчиком, два указателя или регулярное выражение.
- Проверь программу на короткой строке, ответ для которой ты знаешь вручную, и только потом запускай на файле.
- Выведи одно число и перепиши его в бланк без пробелов и лишних символов.
Пример задания из банка «Ранга»
Это базовая задача на серию одинаковых символов: на ней отрабатывается шаблон чтения файла и счётчика, а сверка с ответом показывает, что программа написана без сдвига на единицу.
Условие. Дана строка, состоящая из заглавных латинских букв A, B, C, D, E, F (в живом экзамене она лежит в прикреплённом файле, здесь приведена прямо в условии):
AAFACCFBDFBFEDFCCBFBECECABDEFCBBCFEEFBCDBABFADEFFABFBAEFCCDEBCAFEBACCCFCACDFEDBAEAFBAEEDBBBDFFAFBAECBCDCFADFEDDFCFEDEFAEAADDFABCAAEAFCFBDCFCBABDCCABBFDCABEEAFADCEBBFBFDAEBEEFDEDDCFEEBEEDDAFFECFEABBABDFBFFEEEBADBBEBDBCCAE
Определи максимальное количество идущих подряд одинаковых символов. В ответе запиши только целое число.
Показать ответ и решение
- Самая длинная цепочка одинаковых символов ищется одним проходом: счётчик растёт, пока символ повторяется, и сбрасывается в единицу при смене символа.
- Заведи две переменные: длину текущей цепочки и наибольшую из встреченных.
Ответ: 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, поэтому его выбирают чаще остальных.
Почему программа работает на примере, а на файле даёт неверный ответ?
Чаще всего причина в необработанном переводе строки, в пересекающихся вхождениях или в пропущенной последней серии. Проверь эти три места и сравни результат с ручным подсчётом на короткой строке.
Когда использовать метод двух указателей, а когда регулярные выражения?
Регулярные выражения подходят, если подстроку можно описать шаблоном. Два указателя нужны, когда условие зависит от состава окна и меняется при его сдвиге, например «не более двух разных символов».
Нужно ли знать теорию, если есть шаблон?
Шаблон помогает только на знакомых типах. Нужно уверенно владеть срезами, индексами, циклами и условиями, чтобы изменить заготовку под новое условие.
Полезно по теме
Читать дальше
Проверить себя в тренажёре
Открывается тренировочное задание в формате ЕГЭ: условие видно сразу, краткий ответ проверяется без регистрации.
Решить задание в тренажёреМатериал — разъяснение «Ранг». Официальные правила экзамена, расписание, шкалы баллов и перечни заданий публикуют ФИПИ (fipi.ru) и Рособрнадзор (obrnadzor.gov.ru). Мы не обещаем конкретных баллов: результат зависит от твоей работы.