gpt4 book ai didi

java - 找出不同数字的最大值

转载 作者:行者123 更新时间:2023-12-02 04:37:58 24 4
gpt4 key购买 nike

如何找到括号中“高分”的值?

private static boolean basicSweep(String input) {
int noOfClosingParentheses = 0;
int noOfOpeningParentheses = 0;
int highScore = 0;
for (int i = 0; i < input.length(); i++) {
Character currentCharacter = input.charAt(i);
if (currentCharacter == '(') {
noOfOpeningParentheses++;
highScore++;
}
else if (currentCharacter == ')') {
noOfClosingParentheses++;
}
}
return false;
}

假设我们有字符串“((P)) & (Q v (R & S))”。 “高分”或本例中的最大值为 2,介于 ((P)) 和 (...(R&S)) 之间。我该怎么做呢?我怀疑您将值存储在占位符变量中,但我不确定该变量到底会去哪里。当前的 'highScore' 变量仅等于左括号的总数,所以这样不好。

非常感谢任何帮助。对于任何含糊之处表示歉意 - 这很难解释!

注意:该方法正在开发中 - 无需任何有关缺乏处理的评论!

编辑:尝试的答案建议设置深度和 maxDepth 变量。不幸的是,在以下实现下这也不起作用:

int depth = 0;
int maxDepth = 0;
for (int i = 0; i < input.length(); i++) {
Character currentCharacter = input.charAt(i);
if (currentCharacter == '(') {
noOfOpeningParentheses++;
depth++;
maxDepth = depth;
}
else if (currentCharacter == ')') {
noOfClosingParentheses++;
depth--;
}
}
System.out.println(maxDepth);

如果字符串为“(((P))) & (P V (Q <-> R))”,maxDepth 将为 2,而实际答案为 3:(((P)))。

最佳答案

试试这个代码

private static boolean basicSweep(String input) {
int noOfClosingParentheses = 0;
int noOfOpeningParentheses = 0;
int highScore = 0;
for (int i = 0; i < input.length(); i++) {
Character currentCharacter = input.charAt(i);
if (currentCharacter == '(') {
noOfOpeningParentheses++;

}
else if (currentCharacter == ')') {
noOfClosingParentheses++;
if(noOfOpeningParentheses >= highScore) {
highScore = noOfOpeningParentheses;
}

noOfOpeningParentheses--;

}
}
return false;
}

如果这就是您正在寻找的东西,请告诉我。

关于java - 找出不同数字的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30535647/

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