Текстовый файл содержит только заглавные буквы латинского алфавита и десятичные цифры. Найдите минимальное количество идущих подряд символов, среди которых есть все буквы латинского алфавита от P до Z и нет ни одной цифры. В ответе запишите число – количество символов в найденной последовательности.
Решение:
Python
s = open('8943.txt').readline().strip()
for n in '0123456789':
s = s.replace(n, ' ')
arr = s.split()
alph = 'PQRSTUVWXYZ'
min_len = float('inf')
for a in arr:
letters = {}
for i in range(len(a)):
if a[i] in alph:
letters.setdefault(a[i], []).append(i)
if len(letters) and len(letters) == len(alph):
pl = {c: 0 for c in alph}
while all(pl[c] < len(letters[c]) for c in alph):
curr = [letters[c][pl[c]] for c in alph]
curr.sort()
min_len = min(curr[-1] - curr[0] + 1, min_len)
j = curr[0]
pl[a[j]] += 1
print(min_len)
Ответ: \(23\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене