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"));
}
}
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"));
}
}