Текстовый файл состоит не более чем из 106 символов и содержит только цифры 0, 4, 5, 6, 7, а также знаки «−» и «*» (вычитание и умножение). Определите максимальное количество символов в непрерывной последовательности, являющейся корректным арифметическим выражением с целыми неотрицательными числами (без знака). В этом выражении никакие два знака арифметических операций не стоят рядом. В записи чисел отсутствуют незначащие (ведущие) нули и число 0 не имеет знака. В ответе укажите количество символов в найденном выражении.
Задание 24
Решение
Максимальное корректное выражение
from re import finditer
s = open("task24_file_277762.txt").read()
num = r"([4567][04567]*|0)"
reg = rf"{num}([-*]{num})+"
mx = max((x.group() for x in finditer(reg, s)), key=len, default="")
print(len(mx))
Ищем самую длинную подстроку — корректное арифметическое выражение.
✅ Ответ: 129