简单回文探测器

时间:2018-09-19 23:35:53

标签: java palindrome

我正在研究回文检测器。在某些情况下,我已经设法使其正常工作。当我输入“ Abba”之类的单词时,它作为回文集返回。大!但是如果我输入“ cat”,它不会做同样的事情。我不能为此使用循环。有什么想法吗?

public class Palindrome {
    public static void main(String[]args) {
        Scanner in=new Scanner(System.in);

        System.out.print("Enter word");


        String start = in.nextLine();
        String end=start;

        boolean isPalindrome = (start == end);

        if (isPalindrome) {
            System.out.print("This is a palindrome");}
        else
            System.out.print("This is not a palindrome");

    } 
}

1 个答案:

答案 0 :(得分:0)

start == end总是比较相同的字符串。如果输入为“ cat”,则检查“ cat” ==“ cat”是否为真。

如果不允许使用循环,请使用递归:

String input=in.nextLine();

isPalindrome(0,start.length()-1,input);

boolean isPalindrome(left,right,input){
   if (left>=right){
      // left==right for odd palindrome
      // left>right for even palindrome
      return true;
   }
   if (str.charAt(left)!=str.charAt(right)){
       return false;
   }
   return isPalindrome(left+1,right-1,str);
}