*(И. Карпачев) Текстовый файл состоит не более чем из \(10^6\) символов и содержит только десятичные цифры, арифметические знаки «+» и «-» и скобки «(» и «)». Определите в этом файле максимальное количество идущих подряд групп символов вида \((A+B)\) или \((A-B),\) где \(A\) обозначает натуральное чётное число, а \(B\) – натуральное нечётное число. В записи чисел \(A\) и \(B\) не должно быть незначащих нулей. Например, для строки (((56+-+00(0678-89)(78-9)(322+7)) ответом будет \(13.\)
Решение:
Python
from re import finditer
s = open('8099.txt').readline().strip()
#s = '(((56+-+00(0678-89)(78-9)(322+7))'
ml = 0
for br in finditer(r'(\(([2468]|[1-9][0-9]*[02468])[+\-]([13579]|[1-9][0-9]*[13579])\))+', s):
ml = max(ml, len(br.group(0)))
print(ml)
Ответ: \(89\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене