题目描述如下:
最长回文子串
这里只考虑了暴力解法,关于中心扩展,动态规划啥的没考虑清楚。
关于暴力法,这里用一句话来概括:判断所有的子串是否为回文串。
以下为代码:
(其中有两个疑惑点。1、对于python的循环语法的使用不熟练;2、为啥返回的是s[i:j+1]而不是s[i:j],毕竟判断的时候是s[i:j],百思不得其解啊啊啊。我一开始返回的是s[i:j],但是不对,参考大佬的代码,写的是s[i:j+1],但是我这里还是很不理解)
class Solution(object):
def longestPalindrome(self, s):
"""
:type s: str
:rtype: str
"""
length=len(s)
if len < 2 :
return s
max_len=0
res=s[0]
for i in range(length-1):
for j in range(i+1,length):
if j-i+1 > max_len and self.valid(s,i,j):
max_len=j-i+1
res=s[i:j+1]
return res
def valid(self,s,left,right):
while left < right:
if s[left]!= s[right]:
return False
left +=1
right-=1
return True



