【发布时间】:2017-06-10 01:47:15
【问题描述】:
我有这段代码来检查括号是否在字符串中的一段文本中平衡。
def balanced_brackets(text):
s = Stack()
for character in text:
if character == "(":
s.push(character)
elif character == ")":
if s.is_empty():
return False
else:
s.pop()
if character == "<":
s.push(character)
elif character == ">":
if s.is_empty():
return False
else:
s.pop()
if s.is_empty():
return True
else:
return False
对于以下测试:
print(balanced_brackets('(<x)>(())()'))
print(balanced_brackets('x<y)(>z'))
print(balanced_brackets('<(x)<y>)z'))
以下输出应全部打印
False
但他们会打印
True
出于某种原因。我需要帮助来确定这是为什么。谢谢。
【问题讨论】:
-
你还没有检查你的闭门器是否真的匹配你弹出的开瓶器。
-
我如何检查开瓶器是否在堆栈中。
-
我尝试在 s 中使用 elif "(" 和在 s 中使用 elif "
标签: python python-3.x stack