Текстовый файл содержит только заглавные буквы латинского алфавита и десятичные цифры. Найдите минимальное количество идущих подряд символов, среди которых есть все цифры и есть ровно три буквы латинского алфавита от A до F (других букв может быть сколько угодно). В ответе запишите число – количество символов в найденной последовательности.
Решение:
Python
s = open('8943.txt').readline().strip()
for ch in 'BCDEF':
s = s.replace(ch, 'A')
p = [-1] + [i for i in range(len(s)) if s[i] == 'A'] + [len(s)]
nums = '0123456789'
min_len = float('inf')
for i in range(3, len(p) - 1):
st = s[p[i-2]:p[i]+1]
st1 = s[p[i-3]+1:p[i+1]]
if all(n in st for n in nums):
min_len = min(min_len, p[i] - p[i-2] + 1)
elif all(n in st1 for n in nums):
for j in range(p[i-3]+1, p[i-2] + 1):
for k in range(p[i], p[i+1]):
if all(n in s[j:k+1] for n in nums):
min_len = min(min_len, k - j + 1)
print(min_len)
Ответ: \(17\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене