Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z). Определите максимальное количество идущих подряд символов, среди которых каждая из букв ABCDEF встречается не более ста раз.
Приведём решение на языке Python.
s = open('24.txt').readline().strip()
d = {'A':[],'B':[],'C':[],'D':[],'E':[],'F':[]}
l = 0
maxi = 0
for i in range(len(s)):
if s[i] in 'ABCDEF':
d[s[i]].append(i)
if len(d[s[i]]) > 100:
if d[s[i]][0] + 1 > l:
l = d[s[i]][0] + 1
del d[s[i]][0]
maxi = max(maxi, i - l +1)
print(maxi)
Ответ: 2835.
Приведём решение Юрия Ворошилова на языке Python.
t = open('24.txt').read()
s, j = '', 600
for i in range(len(t)):
c=t[i:i+j]
j=len(s)
while all(c.count(x) < 101 for x in 'ABCDEF') and i+j+1 < len(t):
j+=1
c=t[i:i+j]
if any(c.count(x) > 100 for x in 'ABCDEF'):c=c[:-1]
if len(c) > len(s): s=c
print(len(s))

