定义一个类判断给定字符串中的括号(包括“<>”、“()”、“[ ]”、“{ }”四种类型的括号)是否正确配对。例如:"()adafd{)}" 是错误配对,输出False;"()adafd{(<>)}" 是正确配对,输出True;"{[({})]}"是正确配对,输出True。
时间: 2024-04-30 18:23:47 浏览: 10
可以使用栈来判断括号是否正确配对。遍历字符串,遇到左括号就入栈,遇到右括号就与栈顶元素匹配,如果匹配成功则弹出栈顶元素,继续遍历;否则说明括号不匹配,返回False。
以下是实现代码:
```python
class BracketChecker:
def __init__(self):
self.stack = []
def check(self, s):
for c in s:
if c in "({[<":
self.stack.append(c)
elif c in ")}]>":
if not self.stack:
return False
top = self.stack.pop()
if c == ")" and top != "(":
return False
elif c == "}" and top != "{":
return False
elif c == "]" and top != "[":
return False
elif c == ">" and top != "<":
return False
return not self.stack
```
使用示例:
```python
checker = BracketChecker()
print(checker.check("()adafd{)}")) # False
print(checker.check("()adafd{(<>)}")) # True
print(checker.check("{[({})]}")) # True
```
相关推荐
![](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)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)