Алгоритм решения задания 14. Часть 1
Учимся решать 15 задания первого типа
Читать
Текстовый файл состоит из десятичных цифр, знаков «+» и «*» (сложения и умножения).
Определите максимальное количество символов в непрерывной последовательности, являющейся корректным арифметическим выражением с целыми неотрицательными числами (без знака), значение которого равно нулю. В этом выражении никакие два знака арифметических операций не стоят рядом, порядок действий определяется по правилам математики. В записи чисел отсутствуют незначащие (ведущие) нули.
В ответе укажите количество символов.
import re
with open('2415.txt', 'r') as file:
data = file.readline()
# Одна и более цифра 0, 1, 23
num = r'(?:[0-9]+)'
# Умножение на одну и более цифру *0 *1
x_num = rf'(?:*{num})'
# Умножение нуля на число или число на нуль
# Первый вариант: 0, 0*123, Второй: 123*0, 123*45*0*67
mult = rf'(?:0{x_num}*|{num}{x_num}*?*0{x_num}*)'
# Одна или более групп mult, разделённых +
pattern = rf'{mult}(?:+{mult})*'
matches = re.finditer(pattern, data)
answer = max([len(match.group()) for match in matches])
print(answer)
