№24

Пример решения: метод двух указателей

Обработка символьных строк

ПРИМЕР РЕШЕНИЯ

№ 13100 (Уровень: Средний)

Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z). Определите максимальное количество идущих подряд символов, среди которых каждая из букв C и D встречается не более двух раз.

s = open('files/24_13100.txt').readline().strip()
m = l = c = d = 0
for r in range(len(s)):
    if s[r] == 'C': c += 1
    if s[r] == 'D': d += 1
    while c > 2 or d > 2:
        if s[l] == 'C': c -= 1
        if s[l] == 'D': d -= 1
        l += 1
    m = max(m, r - l + 1)
print(m)

 

№ 9753 Основная волна 19.06.23 (Уровень: Сложный)

Текстовый файл состоит из символов T, U, V, W, X, Y и Z.
Определите в прилагаемом файле максимальное количество идущих подряд символов (длину непрерывной подпоследовательности), среди которых символ Y встречается не более 150 раз.
Для выполнения этого задания следует написать программу.

s = open('files/24_9753.txt').readline().strip()
m = cnt_y = l = 0

for r in range(len(s)):
    if s[r] == 'Y': cnt_y += 1
    while cnt_y > 150:
        if s[l] == 'Y': cnt_y -= 1
        l += 1
    m = max(m, r - l + 1)
print(m)

← К списку шпаргалок