gpt4 book ai didi

java - 修复简单的 java 递归代码

转载 作者:行者123 更新时间:2023-11-30 08:49:33 25 4
gpt4 key购买 nike

public static boolean work(String str, char ch)  

使用递归来确定 str 是否至少包含一次 ch。
如果是,则返回 true,否则返回 false。
例子

work("whynot", 'n') returns true
work("please", 'z') returns 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”。

请解释为什么……我以为是因为我最后一次“return false”;语句覆盖递归情况下的“true”,但是当我摆脱最后一个“return 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 {
return work(str.substring(1), ch);
}
}

关于java - 修复简单的 java 递归代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31373074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com