№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)