Задача с ЕГЭ-2023
Текстовый файл 24-263.txt состоит не более чем из символов и содержит только заглавные буквы латинского алфавита. Определите минимальную длину подстроки, в которой символ
встречается не менее 120 раз.
f = open("24-263.txt")
s = f.readline()
start = 0 # Начало текущей подстроки
zc = 0 # Количество символов ’Z’ в текущей подстроке
# Минимальная длина подстроки, в которой ’Z’ встречается не менее 120 раз
mn = 10000000050000000000
# Проходим по строке с помощью двух указателей (start и end)
for end in range(len(s)):
# Если текущий символ - ’Z’, увеличиваем счетчик zc
if s[end] == ’Z’:
zc += 1
# Если количество ’Z’ достигло 120, начинаем сдвигать начало подстроки
while zc == 120:
# Если символ в начале подстроки - ’Z’, уменьшаем счетчик zc
if s[start] == ’Z’:
zc -= 1
# Обновляем минимальную длину подстроки, если текущая подстрока короче
if end - start < mn:
mn = end - start
start += 1 # Сдвигаем начало подстроки вправо
print(mn + 1)
Ответ: 2310