ЕГЭ, ОГЭ, программирование и робототехника в Калининграде

№ 24007. ЕГКР

Текстовый файл состоит из символов F, G, Q, R, S и W.

Определите в прилагаемом файле максимальное количество идущих подряд символов, среди которых подстрока FSRQ встречается ровно 80 раз.

# Методом двух указателей
with open('2407.txt', 'r') as file:
    data = file.readline()

n = len(data)
lt = 0  # Левый указатель
cnt = 0  # Количество вхождений 'FSRQ' в текущем окне
max_len = 0  # Максимальная длина подстроки

# Проходим по строке с правым указателем
for rt in range(n - 3):
    # Проверяем, есть ли 'FSRQ' на текущей позиции
    if data[rt:rt+4] == 'FSRQ':
        cnt += 1

    # Если количество вхождений 'FSRQ' превышает 80, сдвигаем левый указатель
    while cnt > 80:
        if data[lt:lt+4] == 'FSRQ':
            cnt -= 1
        lt += 1

    # Если количество вхождений 'FSRQ' равно 80, обновляем максимальную длину
    if cnt == 80:
        max_len = max(max_len, rt - lt + 4)

print(max_len)
Разберём это задание на бесплатном пробном занятии

Преподаватель покажет, как решать такие задачи, и подскажет, с чего начать подготовку. Группы до 8 человек, очно в Калининграде и онлайн.

Записаться на пробное занятие