我正在做codebat作爲即將到來的測驗,我有練習。我正在使用遞歸進行遞歸問題,但我的老師說我應該能夠使用其他循環來完成它們。我認爲我應該使用for循環,因爲它們實現的效果很容易達到相同的結果。Codingbat將遞歸循環轉換爲for循環?
但我無法將遞歸轉換爲for循環。
這就是問題所在:
Given a string and a non-empty substring sub, compute recursively the number of times that sub appears in the string, without the sub strings overlapping.
strCount("catcowcat", "cat") → 2
strCount("catcowcat", "cow") → 1
strCount("catcowcat", "dog") → 0
這是我想使用的代碼:
public int strCount(String str, String sub) {
int number = 0;
for (int i = 0; i >= str.length() - 1; i++) {
if (str.substring(i, sub.length()).equals(sub)) {
number += 1;
}
}
return number;
}
當我回來,一切恢復爲0
我不認爲你的for循環已經進入。嘗試將大於str.length的值改爲小於。 – Ryan
等等,你應該使用循環或遞歸? Codingbat特別需要遞歸... –
@SethKitchen我應該使用循環 – user3208915