0
public class longestPalindrome2 {

static String longestPalidromeDP(String s) {
    int n = s.length();
    int longestBegin = 0;
    int maxLen = 1;
    Boolean table[][] = new Boolean[1000][1000];
    for (int i = 0; i < n; i++) {
        table[i][i] = true;
    }
    for (int i = 0; i < n - 1; i++) {
        if (s.charAt(i) == s.charAt(i + 1)) {
            table[i][i + 1] = true;
            longestBegin = i;
            maxLen = 2;
        }
    }
    for (int len = 3; len <= n; len++) {
        for (int i = 0; i < n - len + 1; i++) {
            int j = i + len - 1;
            if (s.charAt(i) == s.charAt(j) && table[i + 1][j - 1]) {
                table[i][j] = true;
                longestBegin = i;
                maxLen = len;
            }
        }
    }
    return s.substring(longestBegin, longestBegin + maxLen);
}

Runtime Error Message:Line 20: java.lang.NullPointerException Last executed input:"abcda" 20 if (s.charAt(i) == s.charAt(j) && table[i + 1][j - 1])

I control the boundaries, but it also Reports error. Thanks for your answer.

BlazeDaBlur2
  • 43
  • 1
  • 12
Lizumi
  • 11
  • 3

0 Answers0