Текстовый файл состоит не более чем из заглавных латинских букв (A..Z). Текст разбит на строки различной длины. Необходимо найти строку, с самой длинной подстрокой, содержащей ровно одну согласную букву. Если таких строк несколько, то нужно взять ту, что встретилась позже в файле. Определите какая пара рядом стоящих символов встречается чаще всего в данной строке (если таких пар несколько, то возьмите ту, чья первая буква пары встречается раньше в алфавите). Запишите в ответ эту пару рядом стоящих символов, а затем через пробел – количество раз сколько она встречается в файле.
Примечание. Гласными в английском алфавите считать буквы A, E, I, U, O, Y.
f = open(’24.txt’) # Открываем файл ’24.txt’ для чтения
mx = 0 # Максимальная длина
a = ’BCDFGHJKLMNPQRSTVWXZ’ # Набор согласных букв
# Проходим по каждой строке в файле
for j in f:
s = j # Присваиваем текущую строку переменной s
# Заменяем все согласные из набора ’a’ на ’*’
for i in a:
s = s.replace(i, ’*’)
# Разбиваем строку по символу ’*’ и вычисляем длины сегментов
t = list(map(len, s.split(’*’)))
# Находим максимальную длину двух последовательных сегментов
mx_len = max(t[i] + t[i + 1] + 1 for i in range(len(t) - 1))
# Если максимальная длина равна 15, выводим строку
if mx_len == 15:
print(j)
Находим наиболее часто встречающуюся пару в найденной строке:
a1 = ’ABCDEFGHIJKLMNOPQRSTUVWXYZ’ # Алфавит английских букв
# Исходная строка для поиска
s = ’XGOORRQQGIHHVWOOOHXXRAGEGIIDDECYAAEYLLDBNGZZWJRHUVVQLSSRYYYOONNNPPJSSUE...’
# Два вложенных цикла для генерации всех возможных пар букв из алфавита
for i in a1:
for j in a1:
t = i + j # Формируем пару букв
c = 0 # Счетчик для подсчета вхождений пары в строке s
# Проходим по строке s, проверяя каждую подстроку длиной 2
for k in range(len(s)-1):
if s[k:k+2] == t: # Если текущая подстрока совпадает с парой t
c += 1 # Увеличиваем счетчик
if c == 16: # Если пара встречается 16 раз
print(t) # Выводим найденную пару
Это пара DD. Окончательно найдем количество пар DD в файле:
f = open(’24.txt’) # Открываем файл ’24.txt’ для чтения
c = 0 # Инициализируем счетчик для подсчета вхождений ’DD’
# Проходим по каждой строке в файле
for i in f:
s = i # Присваиваем текущую строку переменной s
# Проходим по строке, проверяя каждую подстроку длиной 2
for k in range(len(s)-1):
if s[k:k+2] == ’DD’: # Если текущая подстрока равна ’DD’
c += 1 # Увеличиваем счетчик
print(c) # Выводим общее количество вхождений ’DD’