Задание:
Файл содержит 100000 заглавных латинских букв. Найдите подпоследовательность подряд идущих букв, которые при этом расположены по неубыванию в алфавитном порядке (например, в ABCABA это последовательности A, B, C, A, B, A, AB, ABC, BC, AB). В ответе укажите самую длинную из встреченных в файле последовательностей. Если последовательностей такой длины встречается несколько, укажите первую.
(При этом могут встречаться последовательности типа: ABBBCCCDEEFFFF )
Файл
Мой код:
with open('file.txt', mode='r', encoding='utf-8') as f:
text = f.read()
lst = [chr(i) for i in range(ord('A'), ord('Z') + 1)]
abc = ''.join(lst) #алфавит
elems = [] #последовательности
for i in range(len(text) - 1):
passer = False
elems.append(text[i])
j = 1
while passer == False:
if len(text) < i + j + 1:
passer = True
else:
if ord(text[i + j]) - ord(elems[-1][-1]) < 2:
elems[-1] += text[i + j]
else:
passer = True
j += 1
print(max(elems, key=len))
не понимаю, почему проходят последовательности символов, аналогичные этой - FCDBCDEFCDDDEDDBAAA