【问题标题】:How to recursively check for java array palindrome?如何递归检查java数组回文?
【发布时间】:2016-02-02 07:37:44
【问题描述】:

我被困在一个 java 作业中,要求我设计一个检查整数数组的递归回文方法,如果是回文则返回 true,否则返回 false。到目前为止,我知道基本情况是,如果数组为空,或者只有一个元素,则返回 true。但我不知道如何从其余的开始。请帮忙!谢谢! 这是我目前所拥有的:

public boolean isPalindrome(int[] array, int start, int end)
{
    if(array.length == 0 || array.length == 1)
        return true;

    if(start >= end)
        return true;

    if(array[start] != array[end])
        return false;

    return palindrome(array, start + 1, end -1);
}

【问题讨论】:

  • 您首先(第 1 步)分析问题(第 2 步)通过编写代码来实现您的分析
  • 我认为您应该能够弄清楚这一点。递归的本质是通过在较小的输入(在本例中为较小的数组)上解决相同的问题来解决问题。试着在纸上写一些 3 元素和 4 元素回文数组,看看你能不能把它简化为一个更小的问题。
  • @STaefi 抱歉,这不太正确;这一个问答网站。有很多问题和答案。此页面底部显示“认识可以回答的人?分享此问题的链接...”。我们只是不喜欢人们在他们自己做出任何努力之前要求我们告诉他们如何编写代码。
  • @ajb:亲爱的 ajb,你知道我的意思,我们不回答人们如何写作业和编程项目。实际上,我们帮助他们解决代码中的问题。在 CSprogrammers 等其他 Stack Exchange 站点中提出诸如 如何实现算法 ... 之类的问题不是更好吗?
  • @STaefi 我同意这对 StackOverflow 来说不是一个好问题。但我认为,说这不是一个问答网站太过分了,可能会让有好问题的人感到困惑。

标签: java arrays recursion


【解决方案1】:

提示:

  • 空字符串或 1 个字符的字符串是回文。
  • 如果第一个字符和后面的字符相同,则一个字符串是回文串...你找出其余的。
  • 递归算法中的一个常见模式是使用辅助函数来完成这项工作。

【讨论】:

    【解决方案2】:

    感谢所有伟大的提示和建议,刚刚修改了我的代码,它成功了!

    public boolean isPalindrome(int[] array, int start, int end)
    {
        if(array.length == 0 || array.length == 1)
            return true;
    
        if(start >= end)
            return true;
    
        if(array[start] != array[end])
            return false;
    
        return isPalindrome(array, start + 1, end -1);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-30
      • 1970-01-01
      • 2013-01-22
      • 1970-01-01
      • 2019-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多