码迷,mamicode.com
首页 > 其他好文 > 详细

4.栈

时间:2020-06-11 16:37:55      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:匹配   pre   false   values   for   turn   else   ack   div   

判断字符串里面的括号是否是成对出现

SYMBOLS = {}: {, ]: [, ): (, >: <}
SYMBOLS_L, SYMBOLS_R = SYMBOLS.values(), SYMBOLS.keys()
def check(s):
 stack = []
 for c in s:
  if c in SYMBOLS_L:
   # 左符号入栈
   stack.append(c)
  elif c in SYMBOLS_R:
   # 右符号要么出栈,要么匹配失败
   if stack and stack[-1] == SYMBOLS[c]:
    stack.pop()
   else:
    return False
 return True
print(check("3 * {3 +[(2 -3) * (4+5)]}"))
print(check("3 * {3+ [4 - 6}]"))

4.栈

标签:匹配   pre   false   values   for   turn   else   ack   div   

原文地址:https://www.cnblogs.com/doupi/p/13093732.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!