Пробный урок
📘 ЕГЭ по информатике 2027 · задание 24 из 27

Задание 24 ЕГЭ по информатике: Собственная программа обработки символьной информации

Что проверяет задание 24, сколько баллов оно приносит и сколько времени на него закладывать — и 3 примера в формате ФИПИ с подробным решением и ответом.

Уровень
высокий
Максимум
1 балл
Время
~18 минут
Компьютер
нужен (специальное ПО)

Примеры задания 24 с решениями

Сначала попробуйте решить сами, затем откройте решение и сверьте ответ

Пример 1

Текстовый файл состоит из символов X, Y и Z. Определите максимальное количество идущих подряд символов, среди которых каждые два соседних различны. Например, в строке XYZZXYX самая длинная такая цепочка — ZXYX, её длина 4.
Показать решение
1. Идём по строке один раз и держим длину текущей цепочки. 2. Если символ отличается от предыдущего — цепочка продолжается, иначе начинается заново с текущего символа.
s = open('24.txt').readline().strip()     # вся строка из файла без перевода строки
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)                               # ответ
Для примера XYZZXYX программа выведет 4. Ответ для файла с экзамена зависит от файла.

Пример 2

Текстовый файл состоит из символов X, Y и Z. Определите максимальное количество идущих подряд символов, среди которых нет символа Z. Например, в строке XYZXXYYZ самая длинная такая цепочка — XXYY, её длина 4.
Показать решение
1. Идём по строке и считаем длину текущей цепочки без Z; на Z цепочка обрывается.
s = open('24.txt').readline().strip()   # строка из файла
best = cur = 0                          # лучшая и текущая длина цепочки без Z
for c in s:                             # перебираем символы по очереди
    if c != 'Z':                        # символ подходит (X или Y)
        cur += 1                        # цепочка удлиняется
        best = max(best, cur)           # обновляем рекорд
    else:                               # встретили Z
        cur = 0                         # цепочка обрывается
print(best)                             # ответ
Для примера XYZXXYYZ программа выведет 4.

Пример 3

Текстовый файл состоит из символов X, Y и Z. Определите максимальную длину подстроки, в которой символ Z встречается не более двух раз. Например, в строке ZXZYZX самая длинная такая подстрока — XZYZX, её длина 5.
Показать решение
1. Используем «скользящее окно»: правая граница идёт по строке, а левая сдвигается, когда Z в окне больше двух.
s = open('24.txt').readline().strip()    # строка из файла
best = left = z = 0                      # лучший ответ, левая граница окна, число Z в окне
for right in range(len(s)):              # двигаем правую границу окна
    if s[right] == 'Z':                  # в окно вошла буква Z
        z += 1                           # учитываем её
    while z > 2:                         # Z стало больше двух — сжимаем окно слева
        if s[left] == 'Z':               # уходящий символ — Z
            z -= 1                       # уменьшаем счётчик
        left += 1                        # сдвигаем левую границу
    best = max(best, right - left + 1)   # окно корректно — сравниваем длину с рекордом
print(best)                              # ответ
Каждый символ входит в окно и выходит из него один раз, поэтому программа быстрая даже для миллиона символов. Для примера ZXZYZX она выведет 5.

Не получается задание 24? Разберём на пробном уроке

Бесплатно покажем, как решать задание 24 и похожие, определим пробелы и составим план подготовки к ЕГЭ.

Записаться бесплатно

Все задания ЕГЭ по информатике

Структура экзамена, баллы и темы — на странице программы ЕГЭ по информатике