Найти в Дзене
Python для школьников

Задание 24 ЕГЭ по информатике с использованием регулярных выражений

Привет! 24 задание из ЕГЭ по информатике бывает самым разнообразным. И неплохо бы иметь в запасе еще один способ решений - через регулярные выражения. Сама я в свое время прошла один замечательный курс по регулярным выражениям на степик - Регулярные выражения на Python. Он достаточно объемный, много практики, но помогает разобраться с этой темой раз и навсегда. В этой статье я постараюсь выбрать только самое необходимое из теории для решения 24 задания ЕГЭ и привести разборы некоторых задач. Регулярные выражения — мощный инструмент для поиска и обработки текста. Они используются в Python через модуль re. Рассмотрим ключевые элементы синтаксиса, которые встречаются в примерах. Строка 1. Импортируем модуль re (установки не требует, будет доступен на ЕГЭ). Строка 2. Создаем строку, в которой будем искать выражение. Строка 3. С помощью метода findall ищем все комбинации кот или кит в тексте. Строка 4. Выводим результат. 1. Поиск символов 2. Квантификаторы (повторы) * — 0 или более повторе
Оглавление

Привет! 24 задание из ЕГЭ по информатике бывает самым разнообразным. И неплохо бы иметь в запасе еще один способ решений - через регулярные выражения.

Сама я в свое время прошла один замечательный курс по регулярным выражениям на степик - Регулярные выражения на Python. Он достаточно объемный, много практики, но помогает разобраться с этой темой раз и навсегда.

В этой статье я постараюсь выбрать только самое необходимое из теории для решения 24 задания ЕГЭ и привести разборы некоторых задач.

Регулярные выражения

Регулярные выражения — мощный инструмент для поиска и обработки текста. Они используются в Python через модуль re. Рассмотрим ключевые элементы синтаксиса, которые встречаются в примерах.

Базовый пример работы с регулярным выражением в Python

Строка 1. Импортируем модуль re (установки не требует, будет доступен на ЕГЭ).

Строка 2. Создаем строку, в которой будем искать выражение.

Строка 3. С помощью метода findall ищем все комбинации кот или кит в тексте.

Строка 4. Выводим результат.

Элементы синтаксиса регулярных выражений

1. Поиск символов

  • [0-9] — любая цифра от 0 до 9.
  • [a-z] — любая строчная буква от a до z.
  • [A-Z] — любая заглавная буква от A до Z.
  • [0-9a-fA-F] — шестнадцатеричная цифра (например, для поиска HEX-цветов).

2. Квантификаторы (повторы)

* — 0 или более повторений

  • A* — ноль или больше букв A ("", "A", "AA", ...).
  • [0-9]* — любое количество цифр (включая пустую строку).

+ — 1 или более повторений

  • A+ — одна или больше букв A ("A", "AA", ...).
  • [0-9]+ — одна или больше цифр.

{n,m} — От n до m повторений

  • A{2} — ровно 2 A ("AA").
  • A{2,4} — от 2 до 4 A ("AA", "AAA", "AAAA").

3. Группы и незапоминаемые группы

( ... ) — Запоминающая группа

  • Группирует часть выражения и запоминает совпадение.
  • Можно обращаться по индексу (\1, \2) или через group().

(?: ... ) — Незапоминаемая группа (?:)

  • Группирует, но не запоминает совпадение.
  • Полезно для применения квантификаторов (+, *) без сохранения группы.

Задача №1

Текстовый файл состоит из символов A, B и C.

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

Искомая подпоследовательность должна состоять только из пар AB, или только из пар CB, или только из пар AB и CB в произвольном порядке следования этих пар.

Для выполнения этого задания следует написать программу.

Решение

-2

Строка 2. Открываем и читаем файл.

Строка 3. (?:AB|CB)+ — это регулярное выражение, которое ищет последовательности из пар AB или CB.

  • (?:...) — незахватывающая группа (группировка без сохранения в отдельную группу).
  • AB|CB — или AB, или CB.
  • + — 1 или более повторений этих пар.

Строка 4. Ищем максимальное значение по длине.

Строка 5. Выводим длину максимального значения.

Задача №2

Текстовый файл состоит из десятичных цифр и заглавных букв латинского алфавита.Определите в этом файле последовательность идущих подряд символов, представляющих собой запись максимального чётного 14-ричного числа. В ответе запишите количество символов (значащих цифр в записи числа) в этой последовательности.

Примечание. Латинские буквы A, B, C и D означают цифры из алфавита 14⁠-⁠ричной системы счисления.

Решение

-3

Разберём выражение по частям:

  • [1-9A-D] - первый символ должен быть:
    Цифра от 1 до 9
    ИЛИ Буква от A до D
  • [0-9A-D]* - последующие символы (0 или более):
    Любая цифра (0-9)
    ИЛИ Буква от A до D
  • [02468AC] - последний символ должен быть:
    Чётная цифра (0,2,4,6,8)
    ИЛИ Буква A или C

Задача №3

Текстовый файл состоит из цифр 0, 1, 2, 3, 4 и знаков арифметических операций «−» и «+» (вычитание и сложение). Определите максимальное количество символов в непрерывной последовательности, которая является корректным арифметическим выражением с целыми неотрицательными числами. В этом выражении никакие два знака арифметических операций не стоят рядом, в записи чисел отсутствуют незначащие (ведущие) нули и число 0 не имеет знака.

В ответе укажите количество символов.

Решение

-4

Разберем регулярное выражение:

1. Первое число: (?:[1-9][0-9]*|0)

  • [1-9] — любая цифра от 1 до 9 (запрещает ведущий ноль)
  • [0-9]* — любое количество цифр от 0 до 9 после первой
  • |0 — или просто ноль
  • ?: — незапоминаемая группа

2. Последующие операции и числа: (?:[-+](?:[1-9][0-9]*|0))*

  • [-+] — знак + или -
  • (?:[1-9][0-9]*|0) — ещё одно число (с теми же правилами)
  • * — повторение 0 или более раз
  • ?: — снова незапоминаемые группы

Задача №4

Текстовый файл состоит из цифр от 1 до 6, знаков операций «—» и «*» (вычитание и умножение) и заглавных латинских букв A, B, C, D.

Определите максимальное количество символов в непрерывной последовательности символов, состоящей из буквы В, за которой следует корректное арифметическое выражение с целыми неотрицательными числами, записанными в десятичной системе счисления.

Решение

-5

Даннное решение аналогично предыдущей задаче. Добавим только символ "B" в начало строки и изменим символ "+" на "*" в блоке [-*].

Заключение

Конечно, не все задания 24 из ЕГЭ по информатике можно решить с помощью регулярных выражений. Но бывают случаи, когда без этого навыка не обойтись.

Если появятся вопросы, пишите в комментариях. Постараюсь помочь!

Удачи на экзаменах!