【发布时间】:2016-01-23 13:17:08
【问题描述】:
所以我很难回答这个问题,http://codingbat.com/prob/p186177。
给定一个字符串和一个非空子字符串 sub,递归计算 sub 在字符串中出现的次数,且子字符串不重叠。
strCount("catcowcat", "cat") → 2strCount("catcowcat", "cow") → 1strCount("catcowcat", "dog") → 0
所以我决定用谷歌搜索答案,研究一下。擦除它并尝试自己。我想出了。
public int strCount(String str, String sub) {
if(sub.length() > str.length())
return 0;
if(str.substring(0,sub.length()).equals(sub))
return 1 + strCount(str.substring(str.length()),sub);
return strCount(str.substring(1),sub);
}
答案是:
public int strCount(String str, String sub) {
if (str.length() < sub.length()) return 0;
if (str.substring(0, sub.length()).equals(sub))
return 1 + strCount(str.substring(sub.length()), sub);
return strCount(str.substring(1), sub);
}
我不知道为什么我在过去 10 分钟内一直在查看差异,也无法理解为什么当我运行我的代码时它只返回 0 或 1 作为答案。有人能找到区别吗?
【问题讨论】:
标签: java difference