【发布时间】: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,你知道我的意思,我们不回答人们如何写作业和编程项目。实际上,我们帮助他们解决代码中的问题。在 CS 或 programmers 等其他 Stack Exchange 站点中提出诸如 如何实现算法 ... 之类的问题不是更好吗?
-
@STaefi 我同意这对 StackOverflow 来说不是一个好问题。但我认为,说这不是一个问答网站太过分了,可能会让有好问题的人感到困惑。