所以我回答這個問題的難度很大,http://codingbat.com/prob/p186177。代碼中的CodingBat差異
給定一個字符串和一個非空的子字符串sub,遞歸地計算sub在字符串中出現的次數,而不會重疊子字符串。
strCount("catcowcat", "cat") → 2
strCount("catcowcat", "cow") → 1
strCount("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作爲答案。任何人都可以找到差異嗎?
爲什麼downvotes? – BlueMoon93