Форум » Обработка символьных строк » Задача № 5640 » Ответить

Задача № 5640

nikolya29: (№ 5640) (П. Финкель) Текстовый файл 24-225.txt состоит не более чем из 106 символов и содержит буквы английского алфавита и цифры. Определите максимальное число, записанное в этом файле между FF и удовлетворяющее маске «44??78???3», где символ ? обозначает любую цифру. Пример такого числа: 4434781233. Найдите сумму чётных цифр найденного числа. https://kpolyakov.spb.ru/cms/files/ege-sym/24-225.txt Ответ: 36 Мое решение: [pre2] from itertools import * s = open('2.txt').readline() #s = 'FF4411781233FF4413786893FF' sp = [] for x1, x2, x3, x4, x5 in product('0123456789', repeat=5): n = 'FF' + '44' + x1 + x2 + '78' + x3 + x4 + x5 + '3' + 'FF' sp.append(n) maxx = float('-inf') for x in sp: if x in s: maxx = max(maxx, int(x[2:-2])) print(sum (int(x) for x in str(maxx) if int(x) % 2 == 0)) [/pre2] Мой ответ: 38 Скажите, пожалуйста, кто прав?

Ответов - 2

ganilova: У меня тоже получилось 38, хотя само решение отличается от Вашего [pre2]s = 'FF' + open('24-225.txt').readline() + 'FF' a = s.split('FF')[1:-1] m = 4400780003 for x in a: if (len(x) == 10 and x.isdigit() and x[:2] == '44' and x[4:6] == '78' and x[-1] == '3' and m < int(x)): m = max(m, int(x)) print(m) s = 0 while m > 0: if m % 2 == 0: s += m % 10 m //= 10 print(s)[/pre2]

Поляков: Как ни странно, ответ тоже 38. В чем проблема?



полная версия страницы