Вывести на экран самую длинную возрастающую последовательность, ее длину и позицию

Задача:Программа считывает последовательность цифр из файла(построчно) и выводит на экран самую длинную возрастающую последовательность, ее длину и позицию

ПРОБЛЕМА: Код почему-то просто выводит последний элемент

import fileinput, time,os,psutil,re

start_time = time.time()
lst = []
s,l,n = ' '*3
# СЧитаем файл
with fileinput.FileInput('111.txt') as file:
    for line in file:
            for i in re.findall(r'\d+', line):
                lst.append(i)
    # Находим самую длинную последовательность
    for number, i in enumerate(lst):
        buff = 0
        for j in i:
            if int(j) > buff:
                buff = int(j)
                s = i
                l = len(i)
                n = number + 1
            else:
                break

print(f'Все последовательности из файла - {lst}\n'
      f'Самая длинная восх. посл. - {s}\n'
      f'Длинна последовательности - {l}\n'
      f'Номер последовательности - {n}')

Значения в файле: 1 2 3 44 45 4 5 6 6 7 1 2 3 4 5e 9 1 й ц у к 22222222222 й ц у к 4 5 6 913 4 5 7 67898 456 4 12 6 7 4 2 123456789 4 5

У меня выводит


Все последовательности из файла  - ['1', '2', '3', '44', '45', '4', '5', '6', '6', '7', '1', '2', '3', '4', '5', '9', '1', '22222222222', '4', '5', '6', '913', '4', '5', '7', '67898', '456', '4', '12', '6', '7', '4', '2', '123456789', '4', '5']
Самая длинная восх. посл. - 5
Длинна последовательности - 1
Номер последовательности - 36

Ответы (1 шт):

Автор решения: passant

Считаем, что сами "последовательности" вы уже выделили и положили в переменную lst (хотя вопрос к вам: вы понимаете, что такое "последовательность" и что такое "строка" в терминах Python? Боюсь, что нет, но тем не менее).

ns=0
ls=0
for number, i in enumerate(lst):
    if len(i)>=ls:
        ls=len(i)
        ns=number

print(f'Список всех последовательностей - {lst}\n')
print(f'Самая длинная восх. посл. - {lst[ns]}\n'
      f'Длинна последовательности - {ls}\n'
      f'Номер последовательности - {ns}')

Результат:

Список всех последовательностей - ['2', '3', '44', '45', '4', '5', '6', '6', '7', '1', '2', '3', '4', '5', '9', '1', '22222222222', '4', '5', '6', '913', '4', '5', '7', '67898', '456', '4', '12', '6', '7', '4', '2', '123456789', '4', '5']

Самая длинная восх. посл. - 22222222222
Длинна последовательности - 11
Номер последовательности - 16

Теперь вопрос к вам, в связи с достаточно вольным с вашей стороны обращением с устоявшейся терминологией а анализа того, что вы предоставили в качестве кода выших попыток решения задачи. А что такое в вашем понимании "Восходящая (возрастающая) последовательность"? Если под термином "Все последовательности" вы вывели вот это ['2', '3', '44', '45', '4', '5', '6', '6', '7', '1', '2', '3', '4', '5', '9', '1', '22222222222', '4', '5', '6', '913', '4', '5', '7', '67898', '456', '4', '12', '6', '7', '4', '2', '123456789', '4', '5']

→ Ссылка