给定一个包含左右括号的字符串,写一段python 代码计算成对括号
时间: 2023-09-10 19:02:01 浏览: 90
可以使用栈(Stack)的数据结构来实现计算成对括号的功能。
算法步骤如下:
1. 创建一个存储左括号的栈。
2. 遍历给定字符串的每个字符。
3. 当遇到左括号时,将其压入栈中。
4. 当遇到右括号时,判断栈是否为空:
- 如果栈为空,说明存在不成对的右括号,直接返回错误。
- 如果栈不为空,说明存在与当前右括号匹配的左括号,将栈顶的左括号弹出。
5. 循环结束后,判断栈是否为空:
- 如果栈为空,说明所有括号都成对出现,返回正确。
- 如果栈不为空,说明存在不成对的左括号,返回错误。
以下是示例代码:
```python
def calculate_pair_brackets(string):
stack = []
for char in string:
if char == '(':
stack.append(char)
elif char == ')':
if not stack:
return False
stack.pop()
if not stack:
return True
else:
return False
# 测试示例
string1 = "((()))"
print(calculate_pair_brackets(string1)) # 输出 True
string2 = "(()))"
print(calculate_pair_brackets(string2)) # 输出 False
```
该代码会遍历字符串中的每个字符,如果遇到左括号,则将其压入栈中。如果遇到右括号,先判断栈是否为空,如果不为空,则将栈顶的左括号弹出。循环结束后,判断栈是否为空来确定括号是否成对出现。如果栈为空,则返回True,表示所有括号都成对出现;如果栈不为空,则返回False,表示括号不成对出现。
阅读全文