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

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

За­да­ние 24

При­мер.

Пусть файл со­дер­жит такие стро­ки:

ABBAAABBABBXY

XYAYYXYABA

Здесь в пер­вой стро­ке сразу после A три раза стоит B и два раза A. Чаще дру­гих стоит B, эта буква по­па­да­ет в от­дель­ный спи­сок.

Во вто­рой стро­ке после A по од­но­му разу стоят буквы Y и B, обе эти буквы по­па­да­ют в спи­сок.

В итоге буква B по­па­да­ет в спи­сок два раза, буква Y  — один раз. Чаще дру­гих в спис­ке встре­ча­ет­ся буква B  — два раза. В от­ве­те для этого при­ме­ра надо за­пи­сать число 2.

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

Ре­ше­ние.

При­ве­дем ре­ше­ние на языке Python.

f = open('24.txt').readlines()

li = []

for j in f:

st = ''

for x, y in zip(j, j[1:]):

if x == 'A':

st += y

maxi = max(st.count(i) for i in set(st))

for s in set(st):

if st.count(s) == maxi:

li += [s]

print(max(li.count(l) for l in set(li)))

 

Ответ: 82.

 

При­ве­дем ре­ше­ние Юрия Кра­силь­ни­ко­ва на языке Python.

def mol(s):

m = max(s.count(c) for c in s)

return ''.join([c for c in set(s) if s.count(c)==m])

t = ''.join(mol([s[i] for i in range(1,len(s)) if s[i-1]=='A']) for s in open('24.txt'))

print(max(t.count(c) for c in t))

 

При­ве­дем ре­ше­ние Бо­ри­са Са­ве­лье­ва на языке Python.

f = open('24.txt').readlines()

a = [0]*26

for i in f:

b = [0]*26

for j in range (0,len(i)-1):

if i[j] == 'A':

d = ord(i[j+1])-65

if d >= 0 and d <= 26:

b[d] += 1

maxi = max(b)

for k in range (0,26):

if b[k] == maxi:

a[k] += 1

print(max(a))


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