设计一个算法判别一个算术表达式的圆括号是否正确配对java代码
时间: 2024-05-01 07:17:27 浏览: 11
好的,这是一个与算法有关的问题,我可以回答。可以使用栈这一数据结构来判断圆括号是否正确配对。具体的 Java 代码如下:
```
import java.util.Stack;
public class ParenthesisMatcher {
public static boolean isParenthesisMatched(String expression) {
Stack<Character> stack = new Stack<>();
for (char c : expression.toCharArray()) {
if (c == '(') {
stack.push(c);
} else if (c == ')') {
if (stack.isEmpty()) {
return false;
} else {
stack.pop();
}
}
}
return stack.isEmpty();
}
public static void main(String[] args) {
String expression = "((2 + 3) * 5 - 6) / ((1 + 2) * 3)"; // example expression
boolean isMatched = isParenthesisMatched(expression);
System.out.println("Parenthesis matched? " + isMatched);
}
}
```
这个代码利用了栈的特性:当遇到左括号时入栈,遇到右括号时弹出栈顶元素。如果在弹出栈顶元素之前栈已经为空,说明括号没有正确匹配,返回 false;如果最终栈为空,说明所有括号都正确匹配,返回 true。