*Текстовый файл состоит не более чем из \(10^6\) символов и содержит только цифры шестнадцатеричной системы счисления, а также знаки «\(+\)» и «\(*\)» (сложения и умножения). Найдите самую длинную непрерывную последовательность символов, которая стоит сразу после буквы \(C\) и является корректным арифметическим выражением с целыми неотрицательными числами, записанными в десятичной системе счисления. В этом выражении никакие два знака арифметических операций не стоят рядом, в записи чисел отсутствуют незначащие (ведущие) нули и число \(0\) не имеет знака. В ответе запишите значение этого выражения. Если в файле есть два выражения одинаковой длины, выберите то, у которого значение наибольшее.
Решение:
Python
from re import finditer
s = open('7975.txt').readline().strip()
hn = r'(0|[1-9][0-9]*)'
arr = [g.group(1) for g in finditer(rf'(?=C({hn}([+*]{hn})+))', s)]
m = max(len(a) for a in arr)
arr = [eval(a) for a in arr if len(a) == m]
print(max(arr))
Ответ: \(31201\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене