publicclassLongestPalindromicSubstring{ public String longestPalindrome(String s){ String ans = ""; boolean[][] dp = newboolean[s.length()][s.length()]; for (int j=0; j<s.length(); j++) { for (int i=0; i<=j; i++) { if (((j>i+1 && dp[i+1][j-1]) || j <= i+1 ) && s.charAt(i) == s.charAt(j)) { dp[i][j] = true; if (j-i+1 > ans.length()) { ans = s.substring(i, j+1); } } } } return ans; }
publicbooleanisPalindrome(String s, int i, int j){ int left = i; int right = j; while (left < right) { if (s.charAt(left) != s.charAt(right) ){ returnfalse; } left ++; right --; } returntrue; } }