题解 | #最长回文子串# ##这题挺难得
最长回文子串
https://www.nowcoder.com/practice/b4525d1d84934cf280439aeecc36f4af
#coding:utf-8 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param A string字符串 # @return int整型 # class Solution: def getLongestPalindrome(self , A ): # write code here ##Corner if A == None or len(A) == 1: return True ##Common max_len = 1 n = len(A) dp = [[False for i in range(0, n)] for j in range(0, n)] #len = 1 for i in range(0, n): dp[i][i] = True #len = 2 for i in range(0, n - 1): if A[i] == A[i + 1]: dp[i][i + 1] = True max_len = 2 for length in range(3, n + 1): for i in range(0, n - length + 1): j = i + length - 1 if dp[i + 1][j - 1] == True and A[i] == A[j]: dp[i][j] = True start = i max_len = length print ("Max len: ", max_len) return max_len