使用python栈,输入一串包含方括号、圆括号和大括号 的字符串,检查字符串中方括号、圆括 号和大括号是否配对。编写程序完成求解
时间: 2024-09-15 10:02:02 浏览: 35
在Python中,你可以通过构建一个栈数据结构来解决这个问题。栈是一种先进后出(LIFO,Last In First Out)的数据结构,非常适合用于处理括号匹配的问题。我们遍历给定的字符串,对于每一个字符,如果是左括号(如'['、'{'或'('),我们就把它压入栈;如果遇到右括号,比如']'、'}'或')',我们检查栈顶元素是否是相应的左括号,如果匹配则弹出栈顶元素,如果不匹配或者栈为空,则说明括号不配对。
下面是一个简单的Python函数,实现了这个逻辑:
```python
def is_balanced(s):
stack = []
opening_brackets = "([{"
closing_brackets = ")]}"
for char in s:
if char in opening_brackets:
stack.append(char)
elif char in closing_brackets:
if not stack or stack.pop() != opening_brackets[closing_brackets.index(char)]:
return False
# 如果还有剩余的栈顶元素,说明不是完全配对
return len(stack) == 0
# 测试示例
s1 = "[{()}]"
s2 = "({[})"
print(is_balanced(s1)) # 输出: True
print(is_balanced(s2)) # 输出: False
```
阅读全文