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
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
Post a Comment