Java解决括号匹配算法问题
时间: 2023-08-19 16:03:51 浏览: 58
Java解决括号匹配算法问题的一般思路:
1. 遍历字符串中的每一个字符,若遇到左括号,则将其入栈。
2. 若遇到右括号,则从栈中取出一个左括号进行匹配,若匹配成功则继续遍历,否则返回false。
3. 遍历结束后,若栈为空,则说明所有括号都匹配成功,返回true,否则返回false。
具体实现:
```java
public static boolean isMatch(String s) {
Stack<Character> stack = new Stack<>();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == '(' || c == '[' || c == '{') {
stack.push(c);
} else if (c == ')' || c == ']' || c == '}') {
if (stack.isEmpty()) {
return false;
}
char left = stack.pop();
if ((left == '(' && c != ')') || (left == '[' && c != ']') || (left == '{' && c != '}')) {
return false;
}
}
}
return stack.isEmpty();
}
```
在该实现中,我们使用了一个栈来保存左括号,当遇到右括号时,从栈中取出一个左括号进行匹配,若匹配成功则继续遍历,否则返回false。最后,如果栈为空,则说明所有括号都匹配成功,返回true,否则返回false。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)