gpt4 book ai didi

java - 为什么这种递归方法有效?

转载 作者:行者123 更新时间:2023-12-01 12:25:03 24 4
gpt4 key购买 nike

我正在编写一个函数来满足这些要求:给定一个字符串,如果它是零对或多对括号的嵌套,则返回 true,例如 (())((()))。建议:检查第一个和最后一个字符,然后重复其中的内容。

nestParen("(())") → true
nestParen("((()))") → true
nestParen("(((x))") → false

网站上显示的正确解决方案是:

public boolean nestParen(String str) {
if (str.equals("")) return true;
if (str.charAt(0) == '(' && str.charAt(str.length()-1) == ')')
return nestParen(str.substring(1,str.length()-1));
else
return false;
}

我不明白为什么会这样。如果给定的字符串有 ( 以外的字符,例如 ",它是否会遇到 else 情况并返回 false,而不是跳到下一个 (

最佳答案

如果输入字符串包含 () 之外的其他内容,则这肯定不起作用,只需在调用此函数之前调用另一个函数,如下所示:

clean(String str){
String str = "(((X+y)+z))";
String retStr = "";
for(int i = 0 ; i<str.length() ; i++){
if(str.charAt(i) == '(' || str.charAt(i) == ')')
{
retStr += str.charAt(i);
}
}
return retStr
}

然后使用 retStr 输入调用递归函数。

关于java - 为什么这种递归方法有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26430327/

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