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

Текстовый файл 24_1.txt состоит не более чем из 106  символов и содержит десятичные цифры от 1 до 9 включительно, заглавные буквы латинского алфавита, а также знаки «+», «-» и «*» (сложения, вычитания и умножения).

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

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

В ответе укажите количество символов в найденном выражении.

from re import *
s = open(’24_1.txt’).readline()

# заменяем все маски на один определенный символ
s = s.replace(’-’,’$’).replace(’+’,’$’).replace(’*’,’$’)

# составляем маску числа
num = r’([123456789]*)’

# составляем маску подходящей подстроки
reg = rf’{num}([$]{num})+’

# определяем максимальную длину подходящей подстроки,
# проверяя, что в ней нет двух подряд идущих знаков
# и она не начинается и не заканчивается знаком
m = max([x.group() for x in finditer(reg,s) if x.group().count(’$$’) == 0
         and x.group()[0] != ’$’ and x.group()[-1] != ’$’],key = len)

print(len(m))

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