ex exxam.ru
Задания24 из 27
01 Графы: схема дорог и таблица расстояний 02 Логика: фрагмент таблицы истинности, порядок столбцов 03 Базы данных: поиск информации в связанных таблицах 04 Кодирование: условие Фано и двоичное дерево кода 05 Двоичная запись числа: алгоритм строит новое число 06 Исполнитель Черепаха: движение и подсчёт точек 07 Информационный объём: звук и изображения 08 Подсчёт слов: лексикографический список и перебор 09 Электронные таблицы: подсчёт строк по условию 10 Текстовый документ: поиск сочетаний букв по условию 11 Объём данных: мощность алфавита и кодирование 12 Исполнитель МТ (машина на ленте): чтение программы 13 IP-адреса и маски сетей TCP/IP 14 Арифметические выражения и системы счисления 15 Логика: истинность выражения с отрезками и предикатами 16 Рекурсивные функции: чтение и счёт по формулам 17 Обработка целочисленной информации: поиск пар в файле 18 Динамическое программирование: Робот-сборщик монет 19 Игры: выигрышная стратегия первым ходом (куча) 20 Игры: победа Пети своим вторым ходом (куча) 21 Игры: победа Вани первым или вторым ходом (куча) 22 Многопоточные вычисления: максимальное число одновременных процессов 23 Динамика: количество программ исполнителя 24 Обработка символьных строк: поиск подстроки по условию текущее25 Перебор чисел: делители и сумма M 26 Задание 26 нужны файлы27 Задание 27 нужны файлы
24
1 балл демоверсия ЕГЭ-2026

Обработка символьных строк: поиск подстроки по условию

Задание 24 · Билет 1 · ЕГЭ по информатике

Билеты — задания в формате экзамена: открытый сборник или тренировочные по образцу. Это тренировочные материалы, а не официальные КИМ. Ответы пересчитаны и сверены.

Условие

В текстовом файле записана строка из заглавных латинских букв A, B и C. Определите максимальную длину подстроки, состоящей из одинаковых символов.

Скачать файл (.txt)

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

Вопрос. В ответе укажите одно целое число — максимальную длину такой подстроки.

Попробуйте программой

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

Решите программой на Python

в браузере

Напишите свой код, который найдёт ответ, и нажмите «Выполнить». Горячая клавиша запуска: Ctrl/⌘ + Enter.

Файл задачи уже в песочнице: task24-1-stroka.txt — читайте через open('task24-1-stroka.txt').

Результат
Здесь появится вывод print().

Разбор задачи

Задание 24 ЕГЭ по информатике — обработка символьных строк. В текстовом файле записана длинная строка из символов, и нужно найти максимальную длину подстроки, удовлетворяющей условию: например, самой длинной серии одинаковых букв или самой длинной части без двух одинаковых букв подряд.

Строка слишком длинная, чтобы перебирать её вручную, поэтому пишут короткую программу: она один раз проходит строку слева направо, ведёт длину текущего «подходящего» участка и запоминает лучший результат.

Что важно знать

  • Задание высокого уровня — оценивается в 1 балл
  • Ответ — одно целое число: длина самой длинной подходящей подстроки
  • Проход со счётчиком: cur — текущая длина, best — лучшая; на каждом шаге сравниваем символ с предыдущим

План решения

  1. Перепишите условие: какую именно подстроку считаем подходящей.
  2. Прочитайте строку целиком и уберите перевод строки: open(...).read().strip().
  3. Заведите cur (текущая длина) и best (лучший результат) и идите по символам слева направо.
  4. На каждом шаге сравнивайте символ с предыдущим и увеличивайте cur или начинайте заново.
  5. Обновляйте best и в конце выведите его — это и есть ответ.
Не знаешь, как решать?

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

Открыть тренажёр

Решение

Теория с нуля: что нужно знать
1. О чём задача
Дан текстовый файл, в котором записана одна длинная строка из символов (чаще всего заглавные латинские буквы). Нужно найти максимальную длину подстроки, удовлетворяющей условию: например, самой длинной серии одинаковых букв или самой длинной части без двух одинаковых букв подряд. Ответ — одно целое число.
2. Почему нужна программа
Строка содержит сотни тысяч символов — глазами её не перебрать. Пишут короткую программу, которая один раз проходит строку слева направо и запоминает лучший результат. Файл задачи уже загружен в песочницу — прочитайте его через open(...), скачивать на компьютер не нужно.
3. Как прочитать строку
Файл содержит одну строку, поэтому её читают целиком, а перевод строки в конце убирают:
s = open("stroka.txt").read().strip()
После этого s — обычная строка, по её символам можно идти циклом.
4. Проход со счётчиком
Слева направо держат два числа: cur — длина текущей подстроки (серии) и best — лучший результат. На каждом шаге сравнивают символ с предыдущим и либо увеличивают cur, либо начинают заново, а затем обновляют best.
5. Два частых условия
Серия одинаковых: символ совпал с предыдущим — cur += 1, иначе cur = 1. Без двух одинаковых подряд: наоборот — символы разные — cur += 1, совпали — cur = 1. Ответ — максимум cur за весь проход.
6. Что записать в ответ
В ответ идёт только одно число — длина самой длинной подходящей подстроки. Ни индексы, ни саму подстроку выводить не нужно.

Решение

открыто шагов: 4 из 4
1 Шаг 1
Подход. Читаем всю строку из файла и идём по её символам слева направо. Держим длину текущей серии одинаковых букв: если буква совпала с предыдущей — увеличиваем её, иначе начинаем заново. Отдельно храним лучшую длину.
2 Шаг 2
Строка начинается с букв A, B, C. Первый символ кладём в prev и считаем началом серии.
3 Шаг 3
Короткая программа читает файл task24-1-stroka.txt (он уже в песочнице), проходит строку и печатает длину самой длинной серии. Готовый код — в разделе решения, его можно вставить в песочницу кнопкой.
4 Шаг 4
Проход даёт максимальную серию из 11 одинаковых букв, то есть ответ 11.

Программа, которая находит ответ:

s = open('task24-1-stroka.txt').read().strip()   # читаем строку из файла

best = 0      # самая длинная серия одинаковых букв
cur = 0       # длина текущей серии
prev = ''     # предыдущая буква
for ch in s:
    if ch == prev:      # буква та же — серия продолжается
        cur += 1
    else:               # буква сменилась — начинаем серию заново
        cur = 1
        prev = ch
    if cur > best:      # запоминаем максимум
        best = cur
print(best)   # выводим ответ

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

Проверка

Типовые ошибки и проверка
  • Не убирают перевод строки (.strip()) и считают лишний символ.
  • Путают условия: в «серии одинаковых» счётчик сбрасывают при несовпадении, а в «без двух одинаковых подряд» — при совпадении.
  • Начинают best с нуля и теряют первый символ: строка непустая, поэтому best ≥ 1.
  • Ошибаются на единицу: длина подстроки — это число символов, а не разность индексов.
  • Проверка: прогоните программу на коротком фрагменте (например, «ABBCCC») и посчитайте максимум вручную, затем запустите на полном файле.

Режимы

Сейчас открыт режим обучения: теория, разбор и ответ видны. Скоро появится режим проверки — только условие и поле ответа, без подсказок.

Практикум Все задания Режим проверки — скоро

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

Что проверяет задание 24 ЕГЭ по информатике?
Умение обрабатывать символьные строки: прочитать длинную строку из файла и найти максимальную длину подстроки по заданному условию.
Как читать строку из файла?
Файл содержит одну строку, поэтому её читают целиком: s = open("stroka.txt").read().strip(). Метод strip() убирает перевод строки в конце.
Чем отличаются условия «серия одинаковых» и «без двух одинаковых подряд»?
В серии одинаковых счётчик растёт, когда символ совпал с предыдущим, и сбрасывается при несовпадении. В условии «без двух одинаковых подряд» — наоборот: растёт при несовпадении, сбрасывается при совпадении.
С какого значения начинать best?
Строка непустая, поэтому начать можно с best = 1. Главное — не потерять первый символ и не забыть обновлять best на каждом шаге.