简易回文检测器[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我正在研究回文探测器。我已经设法在某些情况下使其工作。当我输入像“Abba”这样的单词时,它会作为回文返回。大!但如果我输入“猫”,它就不会做同样的事情。我不能为此使用循环。有任何想法吗?

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");

    } 
}
java palindrome
1个回答
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);
}
© www.soinside.com 2019 - 2024. All rights reserved.