编写一个递归函数,计算“aaa”的次数 出现在字符串中。打印返回的值。
输入: 啊啊啊
输出: 4
使用递归编写了以下代码,但“a”的值没有更新,而且编译器找不到符号“count”。谁能指出下面代码中的错误:
public static int retcount(String st,int s,int e){
if(e>st.length()-1){
return count;
}
int count=0;
if(st.contains(st.substring(s,e))){
count=count+1;
retcount(st,s+1,e+1);
}
return count;
}
这里有一些可能有帮助的想法。考虑起始字符串
"abcdefgh"
.
如果我用 substring(1) 调用该方法。我会得到
"bcdefgh"
。
如果我再做一次,我会得到
"cdefgh"
。
在某些时候,我希望能够查看传递的长度为 3 的字符串是否以“aaa”开头。
如果是这样,我想增加计数并返回值。
否则,我不会增加计数并返回值。
由于调用正在展开,因此字符串将一次一个字符地重新构建。所以重复上面的过程。
在方法中使用打印语句来帮助确定发生了什么。
最终,您可以传递一个字符串和所需的
target substring
作为参数。您可以使用 length
的 target
来调整子字符串匹配。