I am trying to solve the Longest Palindromic Substring problem on LeetCode, and I have come up with a DP solution pasted below:public class Solution {    String      string;    boolean[][] visited;    String[][]  results;    private boolean isPalindrome(String s){        String test = new StringBuilder(s).reverse().toString();        if(test.equals(s)) return true; else return false;    }    private String maxLengthString(String... args){        String result = new String();        for(String arg:args){            if(arg.length() > result.length()) result = arg;        }        return result;    }    private String findLongestPalindrome(int start,int end){        if(start >= end) return new String();        else if(start >= string.length() || start < 0) return new String();        else if(end <= 0 || end > string.length()) return new String();        else{            if(visited[start][end-1] == true) return results[start][end-1];            String result = new String();            if(this.isPalindrome(string.substring(start,end)))                result = maxLengthString(string.substring(start,end),                                        findLongestPalindrome(start+1,end),                                        findLongestPalindrome(start,end-1));            else result = maxLengthString(findLongestPalindrome(start+1,end),                                          findLongestPalindrome(start,end-1));            visited[start][end-1] = true;            results[start][end-1] = result;            return result;        }    }    public String longestPalindrome(String s) {        // Start typing your Java solution below        // DO NOT write main() function        string = s;        visited = new boolean[s.length()][s.length()];        results = new String[s.length()][s.length()];        return findLongestPalindrome(0,s.length());    }}The algorithm is quite straightforward, but the online judge complains about it not being efficient enough. I am just wondering if this algorithm is slow by nature (in which case I have to find another algorithm) or if it's something about my implementation.
Longest Palindromic Substring challenge solution is inefficient
java;algorithm;strings;programming challenge;palindrome