Python 版本
暴力遍历
class Solution:
def getLongestPalindrome(self , A: str) -> int:
for i in range(len(A), 0, -1): # 从大到小控制回文长度
for j in range(0, len(A)-i+1): # 控制不同长度回文的位置
if (A[j:j+i] == A[j:j+i][::-1]): # 是否回文
return i
辅助扩散
class Solution:
def fun(self, s: str, begin: int, end: int) -> int:
#每个中心点开始扩展
while begin >= 0 and end < len(s) and s[begin] == s[end]:
begin -= 1
end += 1
#返回长度
return end - begin - 1
def getLongestPalindrome(self , A: str) -> int:
maxlen = 1
#以每个点为中心
for i in range(len(A) - 1):
#分奇数长度和偶数长度向两边扩展
maxlen = max(maxlen, max(self.fun(A, i, i), self.fun(A, i, i + 1)))
return maxlen