Текстовый файл 24_1.txt состоит не более чем из символов и содержит десятичные цифры от 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