- 什么是回文子串?
该字符串无论从左读还是从右读,所读的顺序是一样的,也就是说回文串是左右对称的。 - 双指针法找最长回文子串 & 中心扩散
【参考评论中的一个解答】
class Solution:
def longestPalindrome(self, s: str) -> str:
maxl,max_len,n = 0,0,len(s)
for i in range(2*n-1):
l,r = i//2,i//2+i%2
while l>=0 and r < n and s[l]==s[r]:
if r-l+1>max_len: maxl,max_len = l,r-l+1
l-=1
r+=1
return s[maxl:maxl+max_len]
在这边用到中心扩散的方法,尤其是关于l,r的设置,建议运行的时候输出来看一看,可以帮助理解。
最最重点的地方在于理解完回文中心,然后才知道怎样设置双指针。
中心扩散也是官方给出的解答之一,对于小白来说,真的是很友好了。