gpt4 book ai didi

Java平衡表达式检查{[()]}

转载 作者:太空狗 更新时间:2023-10-29 22:41:53 27 4
gpt4 key购买 nike

我正在尝试创建一个将字符串作为其构造函数参数的程序。我需要一种方法来检查字符串是否是平衡括号表达式。它需要处理 ( { [ ] } ) 每个打开都需要与其相应的右括号保持平衡。例如,用户可以输入 [({})] 这将是平衡的,而 }{ 将是不平衡的。这不需要处理字母或数字。我需要使用堆栈来执行此操作。

我得到了这个伪代码,但不知道如何在 java 中实现它。任何建议都会很棒。 pseudocode

更新 - 抱歉忘记发布我到目前为止的内容。这一切都搞砸了,因为起初我试图使用 char 然后我尝试了一个数组..我不确定去哪里。

import java.util.*;

public class Expression
{
Scanner in = new Scanner(System.in);
Stack<Integer> stack = new Stack<Integer>();



public boolean check()
{
System.out.println("Please enter your expression.");
String newExp = in.next();
String[] exp = new String[newExp];
for (int i = 0; i < size; i++)
{


char ch = exp.charAt(i);
if (ch == '(' || ch == '[' || ch == '{')
stack.push(i);
else if (ch == ')'|| ch == ']' || ch == '}')
{
//nothing to match with
if(stack.isEmpty())
{
return false;
}
else if(stack.pop() != ch)
{
return false;
}

}
}
if (stack.isEmpty())
{
return true;
}
else
{
return false;
}
}


}

最佳答案

我希望这段代码可以帮助:

import java.util.Stack;

public class BalancedParenthensies {

public static void main(String args[]) {

System.out.println(balancedParenthensies("{(a,b)}"));
System.out.println(balancedParenthensies("{(a},b)"));
System.out.println(balancedParenthensies("{)(a,b}"));
}

public static boolean balancedParenthensies(String s) {
Stack<Character> stack = new Stack<Character>();
for(int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if(c == '[' || c == '(' || c == '{' ) {
stack.push(c);
} else if(c == ']') {
if(stack.isEmpty() || stack.pop() != '[') {
return false;
}
} else if(c == ')') {
if(stack.isEmpty() || stack.pop() != '(') {
return false;
}
} else if(c == '}') {
if(stack.isEmpty() || stack.pop() != '{') {
return false;
}
}

}
return stack.isEmpty();
}
}

关于Java平衡表达式检查{[()]},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23187539/

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