ЕГЭ Информатика 2023: Разбор задачи 24 (алгоритмы)

Задание 24 демо-варианта ЕГЭ по информатике 2023 года — задача высокого уровня сложности, на решение которой отводится около 18 минут. Проверяется умение создавать программы для обработки символьной информации.

Описание задачи

К заданию прилагается файл, содержащий множество символов или строк. В демо-варианте представлена одна длинная строка. Необходимо определить максимальное количество идущих подряд пар символов «согласная + гласная». Для решения задачи нужно написать программу.

Решение задачи

Чтение файла

Файл (в данном случае 24.txt) открывается и считывается с помощью менеджера контекста with:

with open('24.txt', 'r') as f:
    s = f.readline()

Код открывает файл в режиме чтения (‘r’), считывает строку методом readline() и записывает её в переменную s. Менеджер контекста гарантирует автоматическое закрытие файла.

Замена символов

Для упрощения поиска пар «согласная + гласная», согласные заменяются на ‘S’, гласные — на ‘G’, а пары ‘SG’ — на ‘*’. Используется метод replace():

s = s.replace('C', 'S').replace('D', 'S').replace('F', 'S')
s = s.replace('A', 'G').replace('O', 'G')
s = s.replace('SG', '*')

После замены строка s содержит только символы ‘S’, ‘G’ и ‘*’.

Подсчет максимального количества ‘*’

Для подсчета максимального количества подряд идущих символов ‘*’ используется цикл:

k = 0
comax = 0
for char in s:
    if char == '*':
        k += 1
        comax = max(k, comax)
    else:
        k = 0
print(comax)

Цикл перебирает каждый символ. Если символ равен ‘*’, k увеличивается, и comax обновляется, если текущее k больше предыдущего максимального. Если символ не ‘*’, k обнуляется. Выводится значение comax.

Программа выводит число 95 — максимальное количество подряд идущих пар «согласная + гласная» в исходном файле. Алгоритм использует простые строковые операции и цикл.

Что будем искать? Например,программа