加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
balance_parenthesis.py 1.31 KB
一键复制 编辑 原始数据 按行查看 历史
class Stack:
def __init__(self):
self.items = []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def is_empty(self):
return self.items == []
def peek(self):
return self.items[-1]
def display(self):
return self.items
def is_same(p1, p2):
if p1 == '(' and p2 == ')':
return True
elif p1 == '[' and p2 == ']':
return True
elif p1 == '{' and p2 == '}':
return True
else:
return False
def is_balanced(check_string):
s = Stack()
index = 0
is_bal = True
while index < len(check_string) and is_bal:
paren = check_string[index]
if paren in '{[(':
s.push(paren)
else:
if s.is_empty():
is_bal = False
else:
top = s.pop()
if not is_same(top, paren):
is_bal = False
index += 1
if s.is_empty() and is_bal:
return True
else:
return False
print(is_balanced('[((())})]'))
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化