我一直在尝试在java中的给定字符串中生成尽可能长的palindrome 包含。 但是,它总是出错。
让我提供样本输入和输出,以便它可以提供帮助。
输入:This is a sample string for testing
输出:ttissaepeassitt
如果有人能帮我解决这个问题会很棒!!
谢谢!!
答案 0 :(得分:0)
您可以使用递归算法:
public String findPalindrom(String input){
String palindrom = "";
for(int i=0; i<input.length(); i++){
char c = input.charAt(i); // Explore the string from the beginning, char by char
for(int j=input.length()-1; j>i; j--){ // Explore the string from the end, char by char
if(input.charAt(j)==c){ // We found a letter for the palindrom
String newPalindrom = c + findPalindrom(input.substring(i+1, j)) + c;
if(newPalindrom.length() > palindrom.length())
palindrom = newPalindrom;
}
}
}
if(palindrom.length()==0 && input.length()>0)
palindrom += input.charAt(0); // manage the case where the only palindrom possible is a single char.
return palindrom;
}