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

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

за­но­сит­ся в от­дель­ный спи­сок. Если не­сколь­ко раз­ных букв встре­ча­ют­ся в стро­ке сразу после Т оди­на­ко­вое мак­си­маль­ное ко­ли­че­ство раз, в спи­сок за­но­сят­ся все эти буквы. Опре­де­ли­те, сколь­ко раз встре­тит­ся в этом спис­ке самая частая в нём буква.

За­да­ние 24

При­мер.

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

ATAAATTTATAXY

XYTYYXYTAT

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

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

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

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

Ре­ше­ние.

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

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

li = []

for j in f:

st = ''

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

if x == 'T':

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

 

Ответ: 85.

 

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

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

listABC = {}

for i in range(ord('A'), ord('Z')+1):

listABC[ chr(i) ] = 0

for s in f:

c = {}

for i in range(1, len(s)):

if s[i-1] in 'T':

if not s[i] in c: c[ s[i] ] = 0

c[ s[i] ] += 1

max_value = max(c.values())

max_keys = [k for k, v in c.items() if v == max_value]

for i in max_keys:

listABC[ i ] += 1

print( max(listABC.values()))


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