Текстовый файл содержит только заглавные буквы латинского алфавита и точки. Назовём словом непустую непрерывную последовательность букв, ограниченную точками по обеим сторонам. Найдите минимальную длину подстроки, содержащую не менее \(K = 100000\) слов. В ответе укажите длину найденной строки. Например, в строке «AB..CDE..F..GH.» всего три слова: «.CDE.», «.F.» и «.GH.». В этом случае при \(K = 2\) минимальную длину \(7\) имеет подстрока «.F..GH.».
Решение:
Python
s = open('8701.txt').readline().strip()
#s = 'AB..CDE..F..GH.'
w = [x for x in range(1, len(s)) if s[x-1] == '.' and s[x] != '.']
K = 100_000
ml = float('inf')
for x, y in zip(w, w[K - 1:]):
end = s.find('.', y)
if end != -1:
ml = min(ml, end - x + 2)
print(ml)
Ответ: \(499310\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене