public static boolean work(String str, char ch)
使用遞歸找出str是否至少包含一個ch。
如果是,返回true,否則返回false。
例修復簡單的java遞歸代碼
工作( 「whynot」, 'N')返回true
工作( 「請」, 'Z')返回false
public static boolean work(String str, char ch){
//base case
if (str == null || str.equals("")){
return false;
}
//recursive case
if (ch == str.charAt(0)){
return true;
}else {
work(str.substring(1), ch);
}
return false;
}
我的代碼將正確返回「如果ch是str的第一個字符,則返回true;如果ch在str的任何其他部分,則返回「false」的錯誤答案。
請解釋爲什麼......我在想這是因爲我的最後一次「返回錯誤」聲明否定遞歸情況下的「真實」,但是當我擺脫了最後一個「返回錯誤」時我的編譯器會抱怨我缺少返回值。
包含(str.substring(1),CH);:
試試這個而不是工作? –
你一直在改變你的功能名稱(應該是「工作」,但是「包含」,現在它是「工作」,但你打電話給「包含」裏面......)清理那個 – Amit