Задания
Версия для печати и копирования в MS Word
Тип 24 № 64954
i

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

За­да­ние 24

Спрятать решение

Ре­ше­ние.

При­ведём ре­ше­ние на языке 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))


Аналоги к заданию № 64909: 64954 Все