gpt4 book ai didi

java - Java中的平衡括号程序错误

转载 作者:行者123 更新时间:2023-11-29 04:08:41 26 4
gpt4 key购买 nike

  • 我正在尝试使用 Java 程序为括号表达式查找平衡括号的条件
  • 括号表达式被认为是平衡的如果它不包含不匹配的括号。包含在一对匹配的括号范围内的括号子集也是一对匹配的括号。
  • 例如,如果输入为{[()]},则平衡括号条件为YES,如果不满足条件,则条件为NO。
  • 尝试使用测试用例 {(([])[])[]]} 时,平衡括号的状态显示为 YES 而不是预期的输出 NO
  • 我研究并调试了代码并显示错误,因为堆栈元素中缺少未完成的括号
  • 你们能否提供您的建议来帮助解决问题
  • 提供以下完整代码:
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;

public class Solution {

// Complete the isBalanced function below.
static String isBalanced(String s) {
Stack<Character> bracket = new Stack<Character>();
String decision; char element;
//char[] s_new = s.toCharArray();
for(int i=0; i<s.length(); i++){
element = s.charAt(i);
if(element == '{' || element == '[' || element == '(')
bracket.push(element);
//System.out.println(element);
if((!bracket.empty()) && (element == '}') && (bracket.peek()=='{'))
bracket.pop();
if((!bracket.empty()) && (element == ']') && (bracket.peek()=='['))
bracket.pop();
if((!bracket.empty()) && (element == ')') && (bracket.peek()=='('))
bracket.pop();
System.out.println(bracket);
}
if(bracket.empty())
decision = "YES";
else
decision = "NO";
System.out.println(bracket);

return decision;
}

private static final Scanner scanner = new Scanner(System.in);

public static void main(String[] args) throws IOException {
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));

int t = scanner.nextInt();
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");

for (int tItr = 0; tItr < t; tItr++) {
String s = scanner.nextLine();

String result = isBalanced(s);

bufferedWriter.write(result);
bufferedWriter.newLine();
}

bufferedWriter.close();

scanner.close();
}
}

最佳答案

我想,这对你很有用。

   public class Solution {   
public static boolean validBraces(String input){
String previous = "";
while (input.length() != previous.length())
{
previous = input;
System.out.println("input"+input+" previous"+previous);
input = input
.replace("()", "")
.replace("[]", "")
.replace("{}", "");

}
return (input.length() == 0);
}

public static void main(String[] args) {
System.out.println(validBraces("(}[]" ));
}
}

关于java - Java中的平衡括号程序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56521163/

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