Текстовый файл состоит не более чем из \(10^6\) символов и содержит только заглавные буквы латинского алфавита. Определите максимальное количество идущих подряд символов, среди которых буквы \(X\) и \(Y\) встречаются не более пяти раз.
Решение:
Python
s = open('7193.txt').readline().strip()
p_ch = {'X': [], 'Y': []}
count_ch = {'X': 0, 'Y': 0}
ml = 0
p_begin = 0
for p in range(len(s)):
if s[p] in 'XY':
count_ch[s[p]] += 1
p_ch[s[p]].append(p)
if any(count_ch[ch] > 5 for ch in 'XY'):
ml = max(ml, p - p_begin)
p_begin = p_ch[s[p]].pop(0) + 1
for c in 'XY':
p_ch[c] = [t for t in p_ch[c] if t >= p_begin]
count_ch[c] = len(p_ch[c])
ml = max(ml, len(s) - p_begin)
print(ml)
Ответ: \(342\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене