5 longest palindrome substring
https://leetcode.com/problems/longest-palindromic-substring/
class Solution {
public String longestPalindrome(String s) {
char[] input = s.toCharArray();
// dp[i][j] is whether s[i-j] is palindrome
boolean[][] dp = new boolean[input.length][input.length];
int maxLen = 0;
int start = 0;
int end = 0;
for (int len = 1; len <= input.length; len++) {
for (int i = 0; i + len - 1 < input.length; i++) {
int j = i + len - 1;
if (len == 1) {
dp[i][j] = true;
} else if (i + 1 <= j - 1) {
dp[i][j] = dp[i + 1][j - 1] && (input[i] == input[j]);
} else {
dp[i][j] = (input[i] == input[j]);
}
if (dp[i][j] && maxLen < len) {
maxLen = len;
start = i;
end = j;
}
}
}
return s.substring(start, end + 1);
}
}
Last updated