gpt4 book ai didi

java - 如何使用 Streams 而不是包含变量的循环?

转载 作者:行者123 更新时间:2023-11-30 05:39:32 25 4
gpt4 key购买 nike

我开发了这段代码来检查由括号组成的字符串是否平衡。例如,

不平衡:["(", ")", "((", "))", "()(", ")(", ...]
平衡:[“()”、“()()”、“(())”、“(())()”、...]

我想使用流而不是 for 循环。循环内有一个条件语句,用于检查 counter 变量何时小于零。我不清楚如何将此变量包含在流中。

我欢迎对此提供反馈。请参阅下面我的代码:

public String findBalance(String input) {
String[] arr = input.split("");

Integer counter = 0;

for (String s : arr) {
counter += s.equals("(") ? 1 : -1;
if (counter < 0) break;
}
return counter == 0 ? "Balanced" : "Not Balanced";
}

提前致谢。

最佳答案

流媒体并不适合。问问自己,如果使用parallelStream()会发生什么。您将如何处理简单的边缘情况?

)(

您想要检测计数何时降至 0 以下,即使它稍后会回升。使用并行流很难做到这一点。最好按顺序处理字符串。

流操作在独立且无状态时效果最佳。有状态操作更适合您已有的常规 for 循环。

关于java - 如何使用 Streams 而不是包含变量的循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55950803/

25 4 0