Examples Argument naplanacanalPan bob boba xyz a radar racec
Solution
Hi, Please find my implementation.
Please let me know in case of any issue.
public class LongestPallindrome {
public static String findLongestPalindrome(String str)
{
int maxLength = 1; // The result (length of LPS)
int start = 0;
int len = str.length();
int low, high;
if(str.length() == 0)
return str;
// One by one consider every character as center point of
// even and length palindromes
for (int i = 1; i < len; ++i)
{
// Find the longest even length palindrome with center points
// as i-1 and i.
low = i - 1;
high = i;
while (low >= 0 && high < len && str.charAt(low) == str.charAt(high))
{
if (high - low + 1 > maxLength)
{
start = low;
maxLength = high - low + 1;
}
--low;
++high;
}
// Find the longest odd length palindrome with center
// point as i
low = i - 1;
high = i + 1;
while (low >= 0 && high < len && str.charAt(low) == str.charAt(high))
{
if (high - low + 1 > maxLength)
{
start = low;
maxLength = high - low + 1;
}
--low;
++high;
}
}
return str.substring(start, start+maxLength);
}
public static void main(String[] args) {
System.out.println(\"Longest palindrome substring is: \"+findLongestPalindrome(\"radaramanaplanacanalpanama\"));
System.out.println(\"Longest palindrome substring is: \"+findLongestPalindrome(\"bob\"));
System.out.println(\"Longest palindrome substring is: \"+findLongestPalindrome(\"boba\"));
System.out.println(\"Longest palindrome substring is: \"+findLongestPalindrome(\"a\"));
System.out.println(\"Longest palindrome substring is: \"+findLongestPalindrome(\"xyz\"));
System.out.println(\"Longest palindrome substring is: \"+findLongestPalindrome(\"a radar racecar astonmartin\"));
System.out.println(\"Longest palindrome substring is: \"+findLongestPalindrome(\"\"));
}
}
/*
Sample run:
Longest palindrome substring is: amanaplanacanalpanama
Longest palindrome substring is: bob
Longest palindrome substring is: bob
Longest palindrome substring is: a
Longest palindrome substring is: x
Longest palindrome substring is: racecar
Longest palindrome substring is:
*/


