JAVA将表达式的括号匹配的检查的算法写为程序
时间: 2023-06-19 10:06:16 浏览: 115
以下是使用栈实现表达式括号匹配检查的 Java 代码:
```java
import java.util.Stack;
public class ExpressionChecker {
public static boolean check(String expression) {
Stack<Character> stack = new Stack<Character>();
for (char c : expression.toCharArray()) {
if (c == '(' || c == '[' || c == '{') {
stack.push(c);
} else if (c == ')' || c == ']' || c == '}') {
if (stack.empty()) {
return false;
}
char top = stack.pop();
if ((c == ')' && top != '(') || (c == ']' && top != '[') || (c == '}' && top != '{')) {
return false;
}
}
}
return stack.empty();
}
public static void main(String[] args) {
String expression1 = "((2+3)*5-8)/(3-1)";
String expression2 = "((2+3)*5-8)/(3-1";
String expression3 = "((2+3)*5-8)/(3-1))";
System.out.println(check(expression1)); // true
System.out.println(check(expression2)); // false
System.out.println(check(expression3)); // false
}
}
```
该程序首先创建一个空的栈,然后遍历表达式中的每个字符。如果遇到左括号,则将其推入栈中。如果遇到右括号,则弹出栈顶元素并判断与当前右括号是否匹配。如果不匹配或栈为空,则表达式括号不匹配。最后,如果栈为空,则表达式括号匹配。
阅读全文