(П. Финкель) Текстовый файл состоит не более чем из \(10^6\) символов и содержит буквы английского алфавита и цифры. Определите максимальное число в этом файле, ограниченное двумя парами символов \(RR\) и удовлетворяющее маске «\(322??55???89\)», где символ \(?\) обозначает любую цифру. Пример такого числа: \(322125512389.\) Найдите произведение нечётных цифр и сумму чётных цифр найденного числа, запишите в качестве ответа сумму этих двух чисел.
Решение:
Python
from fnmatch import fnmatch
s = open('5640.txt').readline().strip()
s = s.replace('RR', ' ')
nums = [d for d in s.split(' ') if len(d) == 12 and all(c in '0123456789' for c in d)]
nums = [d for d in nums if fnmatch(d, '322??55???89')]
nums.sort(reverse=True)
odd = [int(x) for x in nums[0] if int(x) % 2 == 1]
even = [int(x) for x in nums[0] if int(x) % 2 == 0]
p = 1
for d in odd:
p *= d
print(p + sum(even))
Ответ: \(14211\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене