python这步回文子串怎么按长度从短到长输出?

img


我知道怎么输出回文子串了,但如何按长度和它说的要求进行排序呢?

img


或者说怎么在内循环外按内循环里的要素大小重新排序?

把找到的回文字符串都放进列表里,然后对列表进行排序 list.sort(key=len),这样短的就在前面了,最后遍历列表输出

tmpStr = input()
n = len(tmpStr)
huiwen = []
for i in range(0, n-1):
    for j in range(i+1, n):
        if tmpStr[i: j+1] == tmpStr[j: i: -1]+tmpStr[i]:
            tmpList = [j-i+1, i, tmpStr[i:j+1]]
            huiwen.append(tmpList)
huiwen.sort()
for i in range(len(huiwen)):
    print(huiwen[i][2])