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

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

f = open(’D:/5.txt’)
a = f.readlines()
# Алфавит, с помощью него будем вести перебор
abc = ’ABCDEFGHIJKLMNOPQRSTUVWXYZ’

# Сколько раз буква, встречающаяся реже всех, стоит после A
c = 0
# Длина самой длинной цепочки стоящих подряд одинаковых букв
mx = 0
# Строка, содержащая данную цепочку
mxs = ’’

# Поиск нужной строки путём перебора подстрок разных длин из одинаковых букв
for s in a:
    for l in abc:
        ts = l
        while ts in s:
            # Ставим ">=", чтобы в случае,
            # где максимальная длина уже встретилась,
            # мы учли позднюю строку
            if len(ts) >= mx:
                mx = len(ts)
                mxs = s
            ts += l

# Сколько раз встречается самая редкая буква
mn = 10**10
# Самая редкая буква
mnl = ’’
# Поиск самой редкой буквы
for l in abc:
    if mxs.count(l) <= mn:
        mn = mxs.count(l)
        mnl = l

# Сколько раз встречается после A во всём файле самая редкая буква
for s in a:
    c += s.count(’A’+mnl)

print(mnl, c)

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