как улучшить показатели времени/памяти в питон?

Задача

найти минимальный палиндром в алфавитном порядке в строке от 2 до 200 000 символов.

ограничения:

max time 1 sec and max memory 512Mb.

Мой код:

s = input("")
lst = []
for i in range(0, len(s)):
    for j in range(i + 1, len(s) + 1):
        p = s[i:j]
        if p == p[::-1] and len(p)>=2:
            lst.append(p)
            lst.sort()
        del p
if not lst:
    print("-1")
else:
    #lst.sort()
    print(sorted(lst, key = len)[0])

Я получаю 1.088s 9.89Mb, либо с lst.sort() в конце - 0.901s 527.30Mb. Как можно это улучшить? Спасибо за помощь!


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