如何优雅的判断字符串中的括号是否完整

2022-01-19  本文已影响0人  秸秆混凝烧结工程师

看例子,这里维护了一个栈,当遇到左括号我们入栈,当遇到右括号我们出栈。

image.png

'''
SYMBOLS = {'}':'{', ']':'[', ')':'('}
SYMBOLS_L, SYMBOLS_R = SYMBOLS.values(), SYMBOLS.keys()

def check(s):
arr = []
for c in s:
if c in SYMBOLS_L:
# 左符号入栈
arr.append(c)
elif c in SYMBOLS_R:
# 右符号要么出栈,要么匹配失败
if arr and arr[-1] == SYMBOLS[c]:
arr.pop()
else:
return False

return not arr

print(check("3 * {3 +[(2 -3) * (4+5)]}"))
print(check("3 * {3+ [4 - 6}]"))

'''

上一篇下一篇

猜你喜欢

热点阅读