[leetcode 005] 最长回文字符串
给定一个字符串s,在其中寻找它的最长回文字符串,可以假设s的最长长度为1000。
例如:
输入:babad
输出:bab (或aba)
代码
class Solution(object): def longestPalindrome(self, s): """ :type s: str :rtype: str """ n = len(s) if n == 1: return s l = 0 r = 0 m = 0 c = 0 b = True for i in range(0,n): # 奇数的情况 for j in range(0,min(n-i,i+1)): if (s[i-j])!=s[i+j]: b=False break else: c=2*j+1 if (c>m): l=i-j+1-b r=i+j+b m=c b=True # 偶数的情况 for j in range(0,min(n-i-1,i+1)): if (s[i-j])!=s[i+j+1]: b=False break else: c=2*j+2 if (c>m): l=i-j+1-b r=i+j+1+b m=c b=True return s[l:r]
(参考链接 https://mp.weixin.qq.com/s?timestamp=1548727459&src=3&ver=1&signature=VLRnqC*1Q22M*ezDiBj2so*h-2t3MMB-czVcrJHBlJNH2n8vC5lwTpwUIS5f3**L4HbsqwpndTO*9-a5*-0BmFrrNFWeV2OBh5gs-7e3J1Q*Ljk1viUIVZuXYuiVW7ukuc1tDYqArmuQ0T*2e*GzKmAd-YPcZdmkItfaQ5WBs2o=)