python定义一个类判断给定字符串中的括号(包括“<>”、“()”、“[ ]”、“{ }”四种类型的括号)是否正确配对。例如:"()adafd{)}" 是错误配对,输出False;"()adafd{(<>)}" 是正确配对,输出True;"{[({})]}"
时间: 2024-05-02 17:19:02 浏览: 27
是正确配对,输出True。
代码如下:
```python
class Bracket:
def __init__(self, s):
self.s = s
def is_valid(self):
stack = []
for c in self.s:
if c in ('(', '[', '{', '<'):
stack.append(c)
elif c in (')', ']', '}', '>'):
if not stack:
return False
if c == ')' and stack[-1] != '(':
return False
if c == ']' and stack[-1] != '[':
return False
if c == '}' and stack[-1] != '{':
return False
if c == '>' and stack[-1] != '<':
return False
stack.pop()
return not stack
s = "()adafd{)}"
bracket = Bracket(s)
print(bracket.is_valid()) # False
s = "()adafd{(<>)}"
bracket = Bracket(s)
print(bracket.is_valid()) # True
s = "{[({})]}"
bracket = Bracket(s)
print(bracket.is_valid()) # True
```
运行结果:
```
False
True
True
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)