描述
对于一个字符串,请设计一个高效算法,计算其中最长回文子串的长度。
给定字符串A以及它的长度n,请返回最长回文子串的长度。
示例1
输入:
"abc1234321ab",12
返回值:
7
用的中心扩散法
# -*- coding:utf-8 -*-
def PalindromeLen(left, right, str, n):
while left >= 0 and right < n and str[left] == str[right]:
left = left - 1
right = right + 1
return right - left - 1
class Solution:
def getLongestPalindrome(self, A, n):
Max = 0
for i in range(n-1):
l = max(PalindromeLen(i,i,A,n), PalindromeLen(i,i+1,A,n))
if Max < l:
Max = l
return Max
# write code here