classSolution{public String longestPalindrome(String s){int len = s.length();if(len<2){return s;}int temp =1;
String ss = s.substring(0,1);boolean[][] dp =newboolean[len][len];for(int i =0;i<len;i++){
dp[i][i]=true;}for(int j=1;j<len;j++){for(int i=0;i<j;i++){if(s.charAt(i)==s.charAt(j)){if(j-i<3){
dp[i][j]=true;}else{
dp[i][j]= dp[i+1][j-1];}}else{
dp[i][j]=false;}if(dp[i][j]){int b = j-i+1;if(b>temp){
temp=b;
ss = s.substring(i,j+1);}}}}return ss;}}
Python 代码
classSolution:deflongestPalindrome(self, s:str)->str:ifnot s:return""
res = s[0]
a =len(s)
dp =[[0]*a for _ inrange(a)]for i inrange(a):
dp[i][i]=1
temp =1for j inrange(1,a):for i inrange(0,j):if s[i]==s[j]:if j-i <3:
dp[i][j]=Trueelse:
dp[i][j]= dp[i+1][j-1]else:
dp[i][j]=Falseif dp[i][j]:
b = j-i+1if b>temp:
temp=b
res = s[i:j+1]return res
s = Solution()
res = s.longestPalindrome('babad')print(res)