(П. Финкель) Текстовый файл состоит не более чем из \(10^6\) символов и содержит буквы английского алфавита и цифры. Определите максимальное число в этом файле, ограниченное двумя парами символов \(SS\) и удовлетворяющее маске «\(12????77??9\)», где символ \(?\) обозначает любую цифру. Пример такого числа: «\(12123477129\)». Найдите сумму нечётных цифр и произведение чётных цифр найденного числа, запишите в качестве ответа сумму этих двух чисел.
Решение:
Python
from fnmatch import fnmatch
s = open('5643.txt').readline().strip()
s = s.replace('SS', ' ')
nums = [d for d in s.split(' ') if len(d) == 11 and all(c in '0123456789' for c in d)]
nums = [d for d in nums if fnmatch(d, '12????77??9')]
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 even:
p *= d
print(p + sum(odd))
Ответ: \(49183\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене