5. Longest Palindromic Substring
Description
Intuition
这题目除了传统方法,可以继续用dp来骚
subtring [i, j]
可以由 substring [i + 1, j - 1]
得出
如果 [i + 1, j - 1]
is a palindrome, and s[i] == s[j]
显然也是
Pitfall
Solution
public String longestPalindrome(String s) {
if (s == null || s.length() == 0) {
return "";
}
final boolean[][] dp = new boolean[s.length()][s.length()];
String res = "";
for (int i = s.length() - 1; i >= 0; i--) {
for (int j = i; j < s.length(); j++) {
dp[i][j] = (2 >= j - i || dp[i + 1][j - 1]) && (s.charAt(i) == s.charAt(j));
if (dp[i][j] && (j - i + 1) > res.length()) {
res = s.substring(i, j + 1);
}
}
}
return res;
}