括号匹配问题数据结构java
时间: 2023-11-21 17:53:51 浏览: 32
括号匹配问题是一种经典的栈应用问题,可以使用Java中的栈数据结构来解决。具体思路是遍历字符串中的每一个字符,如果是左括号则将其压入栈中,如果是右括号则弹出栈顶元素并判断是否与当前右括号匹配。如果匹配则继续遍历,否则返回false。最后如果栈为空则说明所有括号都匹配成功,返回true。
以下是Java代码实现:
```
import java.util.Stack;
public class BracketMatching {
public static boolean isMatched(String str) {
Stack<Character> stack = new Stack<>();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c == '(' || c == '[' || c == '{') {
stack.push(c);
} else if (c == ')' || c == ']' || c == '}') {
if (stack.isEmpty()) {
return false;
}
char top = stack.pop();
if ((c == ')' && top != '(') || (c == ']' && top != '[') || (c == '}' && top != '{')) {
return false;
}
}
}
return stack.isEmpty();
}
}
```