判断括号是否符合成对出现的规则

给你一个只包含括号('('、 ')'、 '{'、 '}'、 '[' 和 ']')的字符串seq,
请你判断该序列是否是合法的括号序列。合法请输出Yes,否则输出No。
例如:
seq="()", 输出Yes
seq="()[]{}", 输出Yes
seq="(]", 输出No
seq="([)]", 输出No

 

该题目最主要是考察对序列的索引取值和list的pop方法,代码如下:

 1 lt = list(seq[0])
 2 for i in seq[1:]:
 3     try:
 4         if (i == '}' and lt[-1] == '{') or (i == ']' and lt[-1] == '[') or (i == ')' and lt[-1] == '('):
 5             lt.pop()
 6         else:
 7             lt.append(i)
 8     except IndexError:
 9         lt.append('_')
10 
11 if len(lt) == 0:
12     print('Yes')
13 else:
14     print('No')

 

posted on 2017-03-23 23:54  南鼎亦顶  阅读(810)  评论(0)    收藏  举报