【问题标题】:Simple Palindrome Detector [duplicate]简单回文检测器[重复]
【发布时间】:2018-09-19 23:35:53
【问题描述】:

我正在研究回文检测器。我已经设法让它在某些情况下工作。当我输入像“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");

    } 
}

【问题讨论】:

  • 你总是比较完全相同的字符串实例
  • 尝试为您需要实现的逻辑编写一些伪代码,以确定单词是否为回文。到目前为止,您当前的方法没有意义,因为正如@IłyaBursov 所说,您正在将输入的单词与其自身进行比较。这显然不是您确定单词是否为回文所需的逻辑。一旦你的逻辑粗略,然后尝试编写代码来实现逻辑。

标签: java palindrome


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2012-04-18
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 2018-10-20
    • 1970-01-01
    • 2015-04-18
    相关资源
    最近更新 更多