在一行中输入一个字符串
,长度
,由可见字符组成。
如果字符串
中的括号部分能构成合法括号序列,则输出
;否则输出
。
abcd(])[efg
false
提取括号 `(`、`)`、`[`、`]` 后为 `(])[`,不是合法括号序列。
a[x(y)z]
true
提取括号后为 `[()]`,是合法括号序列。
a = list(input()) temp =[] res = 1 for aaa in a: if aaa == '('&nbs***bsp;aaa=='[': temp.append(aaa) elif aaa==')': if temp: temp2 = temp.pop() if temp2!= '(': res = 0 print('false') break else: res = 0 print('false') break elif aaa==']': if temp: temp2 = temp.pop() if temp2!= '[': res = 0 print('false') break else: res = 0 print('false') break if res: print("true")防御型代码你值得拥有
A = list(map(str,input().strip())) legal_arr = [] brask = {'(':')','[':']'} for a in A: if a in '()[]': if a in brask: #是左括号 legal_arr.append(a) elif a in brask.values(): #是右括号 if not legal_arr&nbs***bsp;brask[legal_arr[-1]] != a: #为空或者前面的不是左括号,此时肯定大于1,结束函数并输出false print('false') exit() legal_arr.pop() #不为空且前面的是左括号,弹出前面的和不存当前的右括号 print('true' if not legal_arr else 'false')