为给定的字符串生成最长的回文

时间:2015-06-20 09:23:39

标签: java palindrome

我一直在尝试在java中的给定字符串中生成尽可能长的palindrome 包含。 但是,它总是出错。

让我提供样本输入和输出,以便它可以提供帮助。

输入:This is a sample string for testing

输出:ttissaepeassitt

如果有人能帮我解决这个问题会很棒!!

谢谢!!

1 个答案:

答案 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;
}