找出字符串中最长的回文字符串

题目解释:回文字符串,和回文数一个概念,就是说字符串是对称的,比如"ABCBA"。题目举例:输入"babad",输出"bab"或者"aba"。

思路:以输入字符串的长度为起始长度,逐渐递减1,以下标0为开始,向右平移,到达最右,直到找到回文字符串。

代码(Python):

class Solution(object):
    def longestPalindrome(self, s):
        str_len = len(s)
        long_len = str_len
        list_may_longest = []
        while long_len > 0:
            for x in xrange(0, str_len - long_len + 1):
                str_may_longest = s[x:x+long_len]
                if self.palindromic(str_may_longest):
                    list_may_longest.append(str_may_longest)
            if len(list_may_longest) > 0:
                return list_may_longest
            long_len -= 1
    
    def palindromic(self, s):
        len_str = len(s)
        len_half = len_str / 2
        for x in xrange(0,len_half + 1):
            if s[x] != s[-(x+1)]:
                return False
        return True
so = Solution()
print(so.longestPalindrome('babad'))