题目解释:回文字符串,和回文数一个概念,就是说字符串是对称的,比如"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'))