查找所有最长的回文 - 仅获得

时间:2017-07-29 04:27:19

标签: python python-3.x

我需要找到所有可能最长的回文来源吗?

我得到的只有一个:

herp = ""

def isPalindrome(s):
    if s == s[::-1] :
        return True

s = input()

for idy, item in enumerate(s):
    for idx, item in enumerate(s):
        derp = s[idy:idx+1]
        if isPalindrome(derp) and (len(derp) > len(herp)):
            herp = derp

print(herp)

例如。字符串是NITIN

输出:INTNI NITIN

1 个答案:

答案 0 :(得分:1)

根据示例:'INTNI'是'NITIN'的排列,因此您首先必须获得所有排列,然后检查哪些是回文。

因此,您可以尝试使用'isPalindrome'功能:

from itertools import permutations
def getPalindromes(stringVar):
    result = set()
    perms = [''.join(p) for p in permutations(stringVar)]
    for perm in perms:
        if isPalindrome(perm):
           result.add(perm)
    return result