实现一个括号匹配验证器,支持(),{},[]三种括号类型,验证字符串是否括号匹配正确。要求:1给出代码实现;2代码给出注释;3测试序列“([)]”和“{[())}”.4.用Python编程
时间: 2024-12-24 07:40:35 浏览: 3
为了实现一个括号匹配验证器,我们可以创建一个栈数据结构,用于存储遇到的左括号,并在遍历过程中检查右括号是否与相应的左括号配对。以下是使用 Python 编程的一个简单实现:
```python
# 定义一个类 Stack,模拟栈的数据结构
class Stack:
def __init__(self):
self.items = []
# 添加元素到栈顶
def push(self, item):
self.items.append(item)
# 删除并返回栈顶元素
def pop(self):
if not self.is_empty():
return self.items.pop()
else:
return None
# 判断栈是否为空
def is_empty(self):
return len(self.items) == 0
def is_valid(s):
# 创建一个空栈,初始状态为无错误
stack = Stack()
# 遍历输入字符串中的每个字符
for char in s:
# 如果是左括号,压入栈中
if char in '([{':
stack.push(char)
# 如果是右括号
elif char in ')]}' and not stack.is_empty():
# 检查栈顶的左括号是否能匹配当前的右括号
top_char = stack.pop()
if not (char == ')' and top_char == '(' or \
char == ']' and top_char == '[' or \
char == '}' and top_char == '{'):
# 匹配失败,返回False
return False
else:
# 如果遇到右括号而栈为空或未找到对应的左括号,也返回False
return False
# 验证结束后,如果栈为空,则表示所有括号都已匹配,返回True
return stack.is_empty()
# 测试用例
test_cases = ["([)]", "{[()]}", "({[()]}")
for case in test_cases:
result = is_valid(case)
print(f"字符串'{case}'括号匹配吗? 结果: {result}")
#
阅读全文