leetcode LongestPalindromicSubstring
z
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class LongestPalindromicSubstring {
public String longestPalindrome(String s) {
String ans = "";
boolean[][] dp = new boolean[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;
}


public boolean isPalindrome(String s, int i, int j) {
int left = i;
int right = j;
while (left < right) {
if (s.charAt(left) != s.charAt(right) ){
return false;
}
left ++;
right --;
}
return true;
}
}