как улучшить показатели времени/памяти в питон?
Задача
найти минимальный палиндром в алфавитном порядке в строке от 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. Как можно это улучшить? Спасибо за помощь!