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