描述 编写一个程序来确定字符串中的括号是否平衡且嵌套正确。、
时间: 2024-09-19 07:11:05 浏览: 4
编写一个程序来检查字符串中的括号是否平衡并正确嵌套,通常涉及栈数据结构的应用。栈是一种后进先出(LIFO)的数据结构,非常适合用于解决这类问题,因为当我们遇到左括号(如'('或'{')时,我们将其压入栈中;当遇到右括号(如')'或'}')时,我们会检查栈顶的左括号是否匹配当前的右括号。如果匹配,我们就弹出栈顶元素;如果不匹配或到达栈底仍然有未匹配的右括号,说明括号不平衡。
以下是一个简单的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 closing_brackets.index(char) != opening_brackets.index(stack.pop()):
return False
return len(stack) == 0 # 如果栈为空,说明所有括号都已匹配
# 测试代码
s1 = "()" # 平衡
s2 = "( )" # 不平衡(多了一个空格)
s3 = "{[()]}" # 平衡
print(is_balanced(s1), is_balanced(s2), is_balanced(s3)) # 输出:True False True
```