給定一個字符串 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);}
}