Задание 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 — максимальное количество подряд идущих пар «согласная + гласная» в исходном файле. Алгоритм использует простые строковые операции и цикл.