Текстовый файл состоит не более чем из 106 заглавных букв латинского алфавита. Найдите последовательность максимальной длины, которая содержит буквы строго в алфавитном порядке, т.е. ABCD... .
Для выполнения этого задания следует написать программу. Воспользуйтесь файлом abcd.txt. В ответе запишите длину искомой последовательности.
Как будем решать задачу
Воспользуемся алгоритмом, рассмотренном в публикации Найти наибольшую длину возрастающей последовательности.
Запустим цикл по длине строки и будем сравнивать два соседних символа, если это действительно две соседние буквы алфавита, то будем увеличивать счётчик длины, в противном случае счетчик длины примем за 1. Затем найдем максимум среди значений счетчика длины.
Как проверить, что два символа это соседние символы алфавита?
В кодовой таблице символы латинского алфавита расположены по порядку. Соответственно их коды увеличиваются на 1. Значит два соседних символа алфавита имеют разницу кодов, равную 1.
Для вычисления кода символа будем использовать функцию ord().
Программа решения задачи на языке Python
f = open('abcd.txt')
s = f.readline()
k = 1
m = 1
for x in range(len(s)-1):
if ord(s[x+1])-ord(s[x]) == 1:
k+=1
else:
k = 1
m = max(m,k)
print(m)
Ответ: 5
Комментариев нет:
Отправить комментарий