ЕГЭ Информатика 24: Python, решения и разбор задач

Задание 24 ЕГЭ по информатике — задача высокого уровня сложности, проверяющая умение создавать программы для обработки символьной информации (работы со строками). На выполнение отводится около 18 минут.

Задачи и решения

Рассмотрим несколько примеров задания 24, взятых с сайта Константина Юрьевича Полякова.

Максимальное количество идущих подряд символов с различными соседними

Условие: Определить максимальное количество идущих подряд символов, среди которых каждые два соседних символа различны.

Решение:

  1. Открываем файл с помощью менеджера контекста: with open(‘k8.txt’, ‘r’) as f:
  2. Считываем содержимое файла в строковую переменную: s = f.readline()
  3. Инициализируем переменные: k = 1 (текущее количество), k_maximum = 1 (максимальное количество). k инициализируется единицей, поскольку первый символ всегда считается частью последовательности.
  4. Перебираем символы строки циклом: for i in range(len(s) — 1): (до предпоследнего символа, чтобы избежать ошибки выхода за пределы списка).
  5. Проверяем различие соседних символов: if s[i] != s[i + 1]:
  6. Обновляем текущее и максимальное количество: если символы различны, k += 1, затем k_maximum = max(k, k_maximum).
  7. Если s[i] == s[i + 1], то k = 1.
  8. Выводим результат: print(k_maximum)

Максимальное количество идущих подряд пар скобок

Условие: Определить максимальное количество идущих подряд пар скобок в файле.

Решение:

Этот пример использует метод replace() для упрощения задачи. Все пары скобок (()) заменяются на символ ‘@’. Затем подсчитывается максимальное количество подряд идущих символов ‘@’.

  1. Открываем и читаем файл (аналогично предыдущей задаче).
  2. Заменяем пары скобок: s = s.replace(‘()’, ‘@’).
  3. Инициализируем переменные: k = 0, k_maximum = 0.
  4. Перебираем символы: for i in s:
  5. Проверяем и обновляем: если i == ‘@’, k += 1, затем k_maximum = max(k, k_maximum). Если i != ‘@’, k = 0.
  6. Выводим результат: print(k_maximum).

Подсчет подстрок с определенными свойствами

Условие: Определить количество подстрок длиной не менее 27 символов, начинающихся с ‘A’, содержащих ровно две буквы ‘F’, заканчивающихся на ‘B’, и не содержащих других букв, кроме первой и последней.

Решение:

Этот пример использует метод replace() для выделения целевых подстрок, а затем метод split() для их разделения.

  1. Открываем и читаем файл (аналогично предыдущей задаче).
  2. Заменяем начальные и конечные символы: s = s.replace(‘A’, ‘@A’).replace(‘B’, ‘B@’). Это позволяет использовать split(‘@’) для разделения строки.
  3. Разделяем строку: subs = s.split(‘@’).
  4. Перебираем подстроки: for i in subs:
  5. Проверяем условия: длину (len(i) >= 27), количество букв ‘F’ (i.count(‘F’) == 2), начальный (‘A’) и конечный (‘B’) символы (i[0] == ‘A’ and i[-1] == ‘B’).
  6. Подсчитываем: если все условия выполнены, увеличиваем счетчик k.
  7. Выводим результат: print(k).

Максимальное количество идущих подряд групп символов «гласная-гласная-согласная»

Условие: Определить максимальное количество идущих подряд групп символов вида «гласная-гласная-согласная».

Решение: Используется метод replace() для замены гласных на ‘G’, согласных на ‘C’, а затем групп ‘GGC’ на ‘@’. После этого подсчитывается максимальное количество подряд идущих ‘@’.

Максимальное количество идущих подряд символов с не более чем одной точкой

Условие: Определить максимальное количество идущих подряд символов, среди которых не более одной точки.

Решение: Находим индексы точек в строке. Разница между индексами соседних точек (минус 1) дает количество символов между ними.

Нахождение наиболее часто встречающегося символа после буквы ‘A’

Условие: Определить символ, который чаще всего встречается в файле сразу после буквы ‘A’. Если таких символов несколько, выводится тот, который раньше в алфавите.

Решение: Используется словарь для хранения количества вхождений каждого символа после ‘A’. Затем ищется максимальное значение в словаре, учитывая порядок в алфавите при равенстве значений.

Представленные задачи демонстрируют эффективное использование методов работы со строками в Python для решения задач обработки символьной информации на ЕГЭ по информатике. Методы replace(), split(), а также использование словарей являются ключевыми инструментами для решения подобных задач. Понимание логики и алгоритмов поможет успешно справиться с различными вариантами задания 24.

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