【发布时间】:2016-10-02 12:38:12
【问题描述】:
这是弗吉尼亚理工大学 openDSA 交互式学习平台中的一个问题:
对于函数“countChr”,写出递归调用的缺失部分。 此函数应返回字母“A”的次数 出现在字符串“str”中。
int countChr(String str) {
if (str.length() == 0) {
return 0;
}
int count = 0;
if (str.substring(0, 1).equals("A")) {
count = 1;
}
return count + <<Missing a Recursive call>>
}
我知道如何通过以下方式非递归查找字符:
public static void main(String [] args) {
String str ="abdcfghaasdfaadftaxvvaacvbtradcea";
int count =0;
for(int n=0; n<= str.length()-1; n++) {
if(str.charAt(n)== 'a')
count++;
}
System.out.print(count);
}
我真的不知道如何递归地做同样的事情,尤其是遵循问题中给出的确切模式。
【问题讨论】:
-
如果您无法回答这个问题,那么了解什么是递归比获得这个特定问题的答案更有用。
-
我确信您得到的答案之一是正确的,并且参加测试或测验的人必须按照他们要求的方式回答问题。但这是对递归的难以置信愚蠢的使用 - 这个问题只是构造不佳,这当然不是你的错。
-
@worpet 我“确实”知道如何递归地执行此操作,但我不知道如何完全按照他们的要求执行此操作。我可以按照自己的方式重做整个事情,这很好。它我突然想到我正在上的课程有一个糟糕的讲师,他不遵循设计模式,也不遵循有效的 Java 书中描述的标准。我对这门课感到非常沮丧。这让我觉得自己很愚蠢,并质疑我的可信度。
标签: java string recursion character