ЕГЭ, ОГЭ, программирование и робототехника в Калининграде

№ 24015. Основная волна

Текстовый файл состоит из десятичных цифр, знаков «+» и «*» (сложения и умножения).

Определите максимальное количество символов в непрерывной последовательности, являющейся корректным арифметическим выражением с целыми неотрицательными числами (без знака), значение которого равно нулю. В этом выражении никакие два знака арифметических операций не стоят рядом, порядок действий определяется по правилам математики. В записи чисел отсутствуют незначащие (ведущие) нули.

В ответе укажите количество символов.

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)
Разберём это задание на бесплатном пробном занятии

Преподаватель покажет, как решать такие задачи, и подскажет, с чего начать подготовку. Группы до 8 человек, очно в Калининграде и онлайн.

Записаться на пробное занятие