Задача к ЕГЭ по информатике на тему «поиск максимальной подстроки» №6

Текстовый файл 6.txt состоит не более чем из 106  заглавных латинских букв (A..Z). Файл разбит на строки различной длины.Необходимо найти строку, содержащую наибольшее количество букв O (если таких строк несколько, надо взять ту, которая в файле встретилась раньше). Определите, какая буква, стоящая после согласной, встречается в этой строке чаще всего после буквы O (то есть букву O не учитывать). Если таких букв несколько, надо взять ту, которая стоит раньше в алфавите. Запишите в ответе эту букву, а затем без пробелов и разделителей – сколько раз она встречается во всем файле.

f = open(’C:/24_6.txt’)
a = f.readlines()

# Ищем строку с наибольшим кол-вом O
mx = ’’
for s in a:
    if s.count(’O’) > mx.count(’O’):
        mx = s

# Перебираем пары вида "согласная+буква",
# тем самым находим букву, которая находится чаще после согласной
sg = ’BCDFGHJKLMNPQRSTVWXZ’
# Букву O не рассматриваем по условию
abc = ’ABCDEFGHIJKLMNPQRSTUVWXYZ’

mxl = ’’ # Искомая буква
mxc = 0 # Переменная, с помощью которой отслеживаем макс. частоту
for l1 in abc:
    c = 0
    for l2 in sg:
        c += mx.count(l2+l1)
    if c > mxc:
        mxc = c
        mxl = l1

# Во втором выражении мы соединили массив a в одну строку с помощью функции join(),
# чтобы легко найти количество появлений нужной буквы
print(mxl, (’’.join(a)).count(mxl))

Ответ: L38356
Оцените статью
Я решу все!