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