Задание 24 ЕГЭ по информатике — задача высокого уровня сложности, проверяющая умение создавать программы для обработки символьной информации (работы со строками). На выполнение отводится около 18 минут.
Задачи и решения
Рассмотрим несколько примеров задания 24, взятых с сайта Константина Юрьевича Полякова.
Максимальное количество идущих подряд символов с различными соседними
Условие: Определить максимальное количество идущих подряд символов, среди которых каждые два соседних символа различны.
Решение:
- Открываем файл с помощью менеджера контекста: with open(‘k8.txt’, ‘r’) as f:
- Считываем содержимое файла в строковую переменную: s = f.readline()
- Инициализируем переменные: k = 1 (текущее количество), k_maximum = 1 (максимальное количество). k инициализируется единицей, поскольку первый символ всегда считается частью последовательности.
- Перебираем символы строки циклом: for i in range(len(s) — 1): (до предпоследнего символа, чтобы избежать ошибки выхода за пределы списка).
- Проверяем различие соседних символов: if s[i] != s[i + 1]:
- Обновляем текущее и максимальное количество: если символы различны, k += 1, затем k_maximum = max(k, k_maximum).
- Если s[i] == s[i + 1], то k = 1.
- Выводим результат: print(k_maximum)
Максимальное количество идущих подряд пар скобок
Условие: Определить максимальное количество идущих подряд пар скобок в файле.
Решение:
Этот пример использует метод replace() для упрощения задачи. Все пары скобок (()) заменяются на символ ‘@’. Затем подсчитывается максимальное количество подряд идущих символов ‘@’.
- Открываем и читаем файл (аналогично предыдущей задаче).
- Заменяем пары скобок: s = s.replace(‘()’, ‘@’).
- Инициализируем переменные: k = 0, k_maximum = 0.
- Перебираем символы: for i in s:
- Проверяем и обновляем: если i == ‘@’, k += 1, затем k_maximum = max(k, k_maximum). Если i != ‘@’, k = 0.
- Выводим результат: print(k_maximum).
Подсчет подстрок с определенными свойствами
Условие: Определить количество подстрок длиной не менее 27 символов, начинающихся с ‘A’, содержащих ровно две буквы ‘F’, заканчивающихся на ‘B’, и не содержащих других букв, кроме первой и последней.
Решение:
Этот пример использует метод replace() для выделения целевых подстрок, а затем метод split() для их разделения.
- Открываем и читаем файл (аналогично предыдущей задаче).
- Заменяем начальные и конечные символы: s = s.replace(‘A’, ‘@A’).replace(‘B’, ‘B@’). Это позволяет использовать split(‘@’) для разделения строки.
- Разделяем строку: subs = s.split(‘@’).
- Перебираем подстроки: for i in subs:
- Проверяем условия: длину (len(i) >= 27), количество букв ‘F’ (i.count(‘F’) == 2), начальный (‘A’) и конечный (‘B’) символы (i[0] == ‘A’ and i[-1] == ‘B’).
- Подсчитываем: если все условия выполнены, увеличиваем счетчик k.
- Выводим результат: print(k).
Максимальное количество идущих подряд групп символов «гласная-гласная-согласная»
Условие: Определить максимальное количество идущих подряд групп символов вида «гласная-гласная-согласная».
Решение: Используется метод replace() для замены гласных на ‘G’, согласных на ‘C’, а затем групп ‘GGC’ на ‘@’. После этого подсчитывается максимальное количество подряд идущих ‘@’.
Максимальное количество идущих подряд символов с не более чем одной точкой
Условие: Определить максимальное количество идущих подряд символов, среди которых не более одной точки.
Решение: Находим индексы точек в строке. Разница между индексами соседних точек (минус 1) дает количество символов между ними.
Нахождение наиболее часто встречающегося символа после буквы ‘A’
Условие: Определить символ, который чаще всего встречается в файле сразу после буквы ‘A’. Если таких символов несколько, выводится тот, который раньше в алфавите.
Решение: Используется словарь для хранения количества вхождений каждого символа после ‘A’. Затем ищется максимальное значение в словаре, учитывая порядок в алфавите при равенстве значений.
Представленные задачи демонстрируют эффективное использование методов работы со строками в Python для решения задач обработки символьной информации на ЕГЭ по информатике. Методы replace(), split(), а также использование словарей являются ключевыми инструментами для решения подобных задач. Понимание логики и алгоритмов поможет успешно справиться с различными вариантами задания 24.