(П. Финкель) Текстовый файл состоит не более чем из \(10^6\) символов и содержит буквы английского алфавита и цифры. Определите максимальное число в этом файле, ограниченное двумя парами символов \(CC\) и удовлетворяющее маске «\(234???57???8\)», где символ \(?\) обозначает любую цифру. Пример такого числа: \(234123574568.\) Найдите произведение нечётных цифр найденного числа.
Решение:
Python
from fnmatch import fnmatch
s = open('5640.txt').readline().strip()
s = s.replace('CC', ' ')
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, '234???57???8')]
nums.sort(reverse=True)
odd = [int(x) for x in nums[0] if int(x) % 2 == 1]
p = 1
for d in odd:
p *= d
print(p)
Ответ: \(972405\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене