Longest Palindrome - Java

public class LongestPalindrome {

    public static String getLongestString(String input){
        int maxStrLen = Integer.MIN_VALUE;
        int startIndex = Integer.MIN_VALUE;
        int endIndex = Integer.MIN_VALUE;
        for (int i = 1; i <= input.length(); i++) {
            for (int j = 0; j < i; j++) {
                if(isPalindrome(input.substring(j,i))){
                    if(input.substring(j,i).length() > maxStrLen){
                        maxStrLen = input.substring(j,i).length();
                        startIndex = j;
                        endIndex = i;
                    }
                }
            }
        }
        return input.substring(startIndex,endIndex);
    }

    private static boolean isPalindrome(String subString) {

        if(subString.length() == 0 || subString.length()==1)
            return true;
        else if(subString.charAt(0) != subString.charAt(subString.length()-1))
            return false;
        else
            return isPalindrome(subString.substring(1, subString.length() - 1));
    }

    public static void main(String[] args) {
        System.out.println(getLongestString("asdfaaaabbbaaaajljopjabcdmanamdcba"));
    }
}

Output:
abcdmanamdcba


Comments