用Java编写一个算法,判断输入的表达式中圆括号是否匹配
时间: 2023-05-14 07:04:13 浏览: 112
可以使用栈来实现圆括号匹配的判断。具体实现如下:
```
import java.util.Stack;
public class ParenthesesMatching {
public static boolean isParenthesesMatched(String expression) {
Stack<Character> stack = new Stack<>();
for (int i = 0; i < expression.length(); i++) {
char c = expression.charAt(i);
if (c == '(') {
stack.push(c);
} else if (c == ')') {
if (stack.isEmpty() || stack.pop() != '(') {
return false;
}
}
}
return stack.isEmpty();
}
}
```
该算法的思路是,遍历输入的表达式,如果遇到左括号,则将其入栈;如果遇到右括号,则从栈中弹出一个元素,如果弹出的元素不是左括号,则表明括号不匹配,返回 false;如果遍历完整个表达式后栈为空,则表明所有括号都匹配,返回 true。
使用该算法判断括号是否匹配的代码如下:
```
String expression = "((1 + 2) * 3 - 4) / 5";
if (ParenthesesMatching.isParenthesesMatched(expression)) {
System.out.println("括号匹配");
} else {
System.out.println("括号不匹配");
}
```
输出结果为:
```
括号匹配
```
阅读全文