Все задачи №24
№24

Выражение со значением 0

Текстовый файл. Файл из цифр и знаков «+», «*». Найди максимальное число символов в непрерывной последовательности — корректном выражении с целыми неотрицательными числами (без ведущих нулей, два знака подряд не стоят), значение которого равно нулю.

Источник: ФИПИ, № 31368

Скачать файл: task_31368_A.txt. В редакторе он уже лежит рядом с кодом, открывай как на экзамене: open('task_31368_A.txt').

Ответвпиши то, что вывела программа
Показать разбор
  1. Значение равно нулю, только если в каждом слагаемом есть множитель 0.
  2. Опиши число без ведущих нулей регуляркой: 0 или ненулевая цифра и дальше любые цифры.
  3. Опиши произведение, в котором есть множитель 0, и сумму таких произведений через «+».
  4. Пройди по файлу через finditer и возьми наибольшую длину совпадения.
from re import finditer
s = open('task_31368_A.txt').readline().strip()
num = r'(0|[1-9][0-9]*)'
pn = rf'(({num}\*)*0(\*{num})*)'
v = rf'{pn}(\+{pn})*'
print(max(len(x.group()) for x in finditer(v, s)))