给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
示例 1:
输入: “babad”
输出: “bab”
注意: “aba” 也是一个有效答案。
代码
class Solution {public String longestPalindrome(String s) {int n=s.length(),max=-1,l=-1,r=-1;if(n==0) return "";boolean[][] dp=new boolean[n][n];for(int i=0;i<n;i++)//遍历子串长度for(int j=0;j+i<n;j++)//子串的起点{if(s.charAt(j)==s.charAt(j+i)&&(i<=1||dp[j+1][j+i-1]))//满足回文{dp[j][j+i]=true;if(i+1>max) {//获取最长回文子串max=i+1;l=j; r=j+i;}}}return s.substring(l,r+1);}
}