问题描述
判断仅由小括号组成的字符串是否满足括号匹配规则。
输入格式
输入包括多行,每行一个仅有小括号组成的字符串,长度不超过100
输出格式
输出包括多行,如果对应的输入括号匹配,输出YES,否则输出NO
输入样例
()()()
((()))
())(
((()
输出样例
YES
YES
NO
NO
代码
BRACKET = {')': '('}
BRACKET_L, BRACKET_R = BRACKET.values(), BRACKET.keys()
while 1:
s =str(input())
arr = []
a=0
for c in s:
if c in BRACKET_L:
# 左括号入栈
arr.append(c)
elif c in BRACKET_R:
# 右括号,要么栈顶元素出栈,要么匹配失败
if arr and arr[-1] == BRACKET[c]:
arr.pop()
else:
print('NO')
a=1
break
if arr == [] and a==0:
print('YES')
elif arr != []:
print('NO')