5. Longest Palindromic Substring
思路:采用最偷懒的方式也就是多重循环遍历所有可能的回文,然后找出最长的,但是这样做的代价就是,时间复杂度较高,无法通过最后一个例子,最后还是用取巧的方式才过的,之后又看了看解析给的几种方法,感觉还是要多学习。代码使用python3编写。
代码:
class Solution:
def longestPalindrome(self, s):
"""
:type s: str
:rtype: str
"""
a = ''
l = []
if s == s[::-1]: //先检查一下,字符串本身是不是回文,不加这一步,我的代码会超过时间限制
return s
for i in range(len(s)):
for j in range(1,len(s)-i+1):
if s[i] == s[-1]:
if s[i:] == s[i:][::-1]:
l.append(s[i:])
if s[i] == s[-j]:
a = s[i:-j+1][::-1]
if a == s[i:-j+1]:
l.append(a)
if not l:
return s[0]
l1 = list(map(len,l))
x = l1.index(max(l1))
return l[x]