Thursday, December 4, 2014

Find Largest Palindrome in the given string

Find the largest palindrom present in the string

Input: abcdefgmalayalam

Output: malayalam


Solution


public class LongestPalindrome {

private static boolean isPalindrome(String str) {

int length = str.length();

for (int i = 0; i < ((length / 2) + 1); i++) {

if (str.charAt(i) != str.charAt(length - i - 1))
return false;

}
return true;
}

private static String largestPalindrome(String str) {

int length = str.length();

String largestPalindrome = "";

for (int i = 0; i < length - 1; i++) {

for (int j = length - 1; j >= 0 && j != i; j--) {

String subStr = str.substring(i, j + 1);

if (isPalindrome(subStr)) {
largestPalindrome = largestPalindrome.length() < subStr
.length() ? subStr : largestPalindrome;
}
}

}

return largestPalindrome;

}

public static void main(String[] args) {
// Check for Palindrome
System.out.println(isPalindrome("dog"));
System.out.println(isPalindrome("malayalam"));
System.out.println(isPalindrome("aaaabbb"));

// Check largestPalindrome

System.out.println(largestPalindrome("abcdefgmalayalam"));

}


}