1. 程式人生 > >查詢字串中最長的迴文字串

查詢字串中最長的迴文字串

# 採用的是從裡向外擴充套件的方法來計算
def longestPalindrome1(s):
    res = ""
    for i in range(len(s)):
        # 如果長度為奇數的話
        tmp = helper(s, i, i)
        print(tmp)
        if len(tmp) > len(res):
            res = tmp
        # 長度為偶數的話
        tmp = helper(s, i, i + 1)
        print(tmp)
        if len(tmp) > len(res):
            res = tmp
    return res
# 從裡面向外面擴充套件其實也就類似於動態規劃
def helper(s, left, right):
    while left >= 0 and right < len(s) - 1 and s[left] == s[right]:
        left -= 1
        right += 1
    return s[left + 1: right]

str = 'abccbd'
res = longestPalindrome1(str)
print(res)