1.定义一个类判断给定字符串中的括号(包括“<>”、“()”、“[ ]”、“{ }”四种类型的括号)是否正确配对。例如:"()adafd{)}" 是错误配对,"()adafd{(<>)}" 是正确配对,"{[({})]}"是正确配对。用python实现
时间: 2024-02-20 09:57:11 浏览: 23
可以定义一个栈来实现括号的匹配,具体实现如下:
```python
class BracketMatch:
def __init__(self):
self.stack = []
self.bracket_map = {
")": "(",
"]": "[",
"}": "{",
">": "<",
}
def is_match(self, s):
for c in s:
if c in self.bracket_map.values():
self.stack.append(c)
elif c in self.bracket_map.keys():
if not self.stack or self.bracket_map[c] != self.stack.pop():
return False
return not self.stack
```
这里使用了一个字典来存储每种右括号对应的左括号。遍历字符串中的每个字符,如果是左括号,则将其入栈;如果是右括号,则从栈顶取出一个左括号进行匹配,如果匹配失败或者栈为空,则说明括号不匹配。最后判断栈是否为空,如果为空则说明括号全部匹配成功。
相关问题
定义一个类判断给定字符串中的括号(包括“<>”、“()”、“[ ]”、“{ }”四种类型的括号)是否正确配对。
以下是Python代码实现:
```python
class BracketChecker:
def __init__(self, text):
self.text = text
self.stack = []
def check(self):
for char in self.text:
if char in "<({[":
self.stack.append(char)
elif char in ">)}]":
if len(self.stack) == 0:
return False
elif char == ">" and self.stack[-1] == "<":
self.stack.pop()
elif char == "}" and self.stack[-1] == "{":
self.stack.pop()
elif char == "]" and self.stack[-1] == "[":
self.stack.pop()
else:
return False
return len(self.stack) == 0
```
使用示例:
```python
checker = BracketChecker("(<{[()]}>[()])")
print(checker.check()) # True
checker = BracketChecker("(<{[()]}>[()])}")
print(checker.check()) # False
checker = BracketChecker("(<{[()]}>[()]")
print(checker.check()) # False
```
python定义一个类判断给定字符串中的括号(包括“<>”、“()”、“[ ]”、“{ }”四种类型的括号)是否正确配对。例如:"()adafd{)}" 是错误配对,输出False;"()adafd{(<>)}" 是正确配对,输出True;"{[({})]}"
是正确配对,输出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)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)