Задача к ЕГЭ по информатике на тему «поиск максимальной подстроки» №3

Текстовый файл 24_3.txt состоит не более чем из 106  символов и содержит буквы A, B и цифры десятичной системы счисления, а также знаки «+» и «*» (сложения и умножения).

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

В этом выражении никакие два знака арифметических операций не стоят рядом. В записи чисел отсутствуют незначащие (ведущие) нули. В ответе укажите количество символов в найденном выражении.

import re
f = open("24_3.txt")
s = f.readline()
# Первое число: 0 или число без ведущих нулей (1 или 2, за которыми могут идти 0, 1, 2)
# Группа для оператора и следующего числа
# Оператор: + или *
# Следующее число: 0 или число без ведущих нулей
# Повторение группы (оператор + число) 0 или более раз
pattern = re.compile(r"AB(0|[12][012]*)(?:[+*](0|[12][012]*))*")
matches = pattern.finditer(s)
max_len = 0
for match in matches:
    substring = match.group()
    max_len = max(len(substring), max_len)
print(max_len)

Ответ: 5
Оцените статью
Я решу все!