gpt4 book ai didi

java - 递归 Java 调用中的空结果

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

我正在处理以下内容 CodingBat problem :

Given a string that contains a single pair of parenthesis, compute recursively a new string made of only of the parenthesis and their contents, so "xyz(abc)123" yields "(abc)".

parenBit("xyz(abc)123") → "(abc)"
parenBit("x(hello)") → "(hello)"
parenBit("(xy)1") → "(xy)"

我尝试这样解决:

import java.util.LinkedList;
import java.util.List;

public class ParenBit {
public static void main(String arg[]) {
ParenBit p = new ParenBit();
p.solve(arg[0], '(', "");
System.out.println(p.finalResult.toString());
}

private List<String> finalResult = new LinkedList<String>();

private boolean solve(String s, char c, String result) {
if (s.length() == 0)
return false;
char f = s.charAt(0);
if (f == '(') {
boolean b = solve(s.substring(1), ')', result);
if (b) {
result += f + "";
}
if (f == c)
return true;
} else if (f == ')') {
if (c == f) {
result += f + "";
finalResult.add(result);
solve(s.substring(1), '(', "");
return true;
}
} else {
if (c == ')') {
boolean b = solve(s.substring(1), ')', result);
if (b) {
result += f + "";
}
} else if (c == '(') {
return solve(s.substring(1), '(', result);
}
}
return false;
}
}

当我用这个输入调用它时:

wow(thesis)

我得到空结果。我该如何解决这个问题?

最佳答案

当我将您的代码粘贴到我的 IDE 中时,它会告诉我

if (b) {
result += f + "";
}

从未使用过分配给“result”的值f + ""

这意味着您更新了 result 参数,但您从未使用更新后的值,因为您总是使用 调用 solve() 方法结果参数。

关于java - 递归 Java 调用中的空结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37996999/

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