Текстовый файл состоит из цифр 0, 6, 7, 8, 9 и знаков арифметических операций «−» и «*» (вычитание и умножение). Определите максимальное количество символов в непрерывной последовательности, которая является корректным арифметическим выражением с целыми неотрицательными числами. В этом выражении никакие два знака арифметических операций не стоят рядом, в записи чисел отсутствуют незначащие (ведущие) нули и число 0 не имеет знака.
В ответе укажите количество символов.
Приведём решение на языке Python.
s = open('demo_2025_24.txt').read()
s = s.strip().replace('-', '*').split('*')
posledov = ''
maxi = 0
for i in range(len(s)):
if (s[i]!='') and ((s[i][0]!='0') or (s[i]=='0')):
if posledov != '':
posledov = posledov + '*' + s[i]
else:
posledov = posledov + s[i]
if posledov.find('*') != -1:
maxi = max(maxi, len(posledov))
else:
if s[i] != '' and s[i][0] == '0':
if s[i].count('0') != len(s[i]):
s[i] = s[i].lstrip('0')
else:
s[i] = '0'
posledov = s[i]
else:
posledov = ''
print(maxi)
Ответ: 154.
Приведём решение Юрия Ворошилова на языке Python.
t = open('demo_2025_24.txt').read()
t = t.replace('-', '*')
t = t.replace('*0*', '*5*')
while '**' in t:
t = t.replace('**', '*x*')
t = t.replace('*0', 'x')
while 'x0' in t:
t = t.replace('x0', 'x')
a = t.split('x')
ml = 0
for i in a:
if len(i) > 1:
if i[0] == '*':
i = i[1:]
if i[-1] == '*':
i = i[:-1]
ml = max(ml,len(i))
print(ml)
Приведём решение Андрея Трухния на языке Python.
t = open('demo_2025_24.txt').read()
t = t.replace('-', '*')
t = t.replace('*0*', '*5*')
t = t.replace('**', 'x')
t = t.replace('*0', 'x')
while 'x0' in t:
t = t.replace('x0', 'x')
t = t.replace('x*', 'x')
t = t.replace('*x', 'x')
a = t.split('x')
k=0
for i in a:
if len(i)>3:
k = max(k,len(i))
print(k)
Приведём решение Дилявера Усеиновича Измаилова на языке Python.
from re import *
text = open('demo_2025_24.txt').readline()
nat = r'(([6789][06789]*)|0)'
reg = rf'(?=({nat}([-*]{nat})+))'
print(len(max([x.group(1) for x in finditer(reg, text)], key=len)))

