Текстовый файл состоит из десятичных цифр от 1 до 9, знаков «+» и «*» (сложения и умножения).
Определите в прилагаемом файле максимальное количество символов в непрерывной последовательности, являющейся корректной записью арифметического выражения, состоящей из не более чем 40 натуральных чисел и знаков арифметических операций между ними.
В ответе укажите количество символов.
##Приведём решение на языке Python.
from re import findall
s = open('24.txt').readline()
maxi = max(findall(r'(?=([1-9]+(?:[+*][1-9]+){39}))',s), key = len)
print(len(maxi))
Ответ: 368.
Приведём решение Юрия Красильникова на языке Python.
def maxlen(s):
a=s.strip('+').split('+') # удаляем плюсы с начала и с конца и разбиваем по плюсам
md=40 # макс. длина
if len(a) <= md: # суммируем длины чисел и прибавляет количество плюсов
return sum(len(x) for x in a) + len(a)-1
else: # перебираем все строки с макс. количеством слагаемых и запоминаем сумму длин
ans=[sum(len(x) for x in a[i:i+md]) for i in range(len(a)-(md-1))]
return max(ans)+(md-1) # добавляем количество плюсов
s=open('24.txt').readline().strip()
a=s.replace('*','+').split('++')
print(max(maxlen(s) for s in a))

