Текстовый файл состоит не более чем из \(10^7\) символов и содержит только заглавные буквы латинского алфавита и десятичные цифры. Назовём «словом» непустую непрерывную подпоследовательность букв, ограниченную цифрами по обеим сторонам. Найдите минимальную длину подстроки, содержащую не менее \(K = 10000\) «слов». В ответе укажите длину найденной строки. Например, в строке AC12BDE3F2ED6 всего три «слова»: BDE, F и ED. При \(K = 2\) ответом для данной строки будет являться число \(6:\) это подстрока 3F2ED6.
Решение:
Python
s = open('24.txt').readline().strip()
p = 0
K = 10_000
ls = len(s)
min_len = float('inf')
nums = []
while p < ls:
while p < ls and s[p] in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':
p += 1
if p < ls:
nums.append(p)
while p < ls and s[p] in '0123456789':
p += 1
for i in range(len(nums) - K):
p1, p2 = nums[i], nums[i + K]
while s[p1 + 1] in '0123456789':
p1 += 1
min_len = min(min_len, p2 - p1 + 1)
print(min_len)
Ответ: \(68616\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене