方法一:运用键值对方法
def isValid(s):
symbol = {')':'(',']':'[','}':'{'}
Save = []
for i in s:
if Save and i in symbol :
if Save[-1] == symbol[i]:
Save.pop()
else:
return False
else:
Save.append(i)
return not Save
print(isValid(input()))
方法二:运用双向队列
mport sys
from collections import deque
def isValid(s):
st = deque() # 定义一个栈
i = 0
while i < len(s):
e = s[i]
if e == '(' or e == '[' or e == '{':
st.append(e) # 将左括号进栈
else:
if e == ')':
if len(st) == 0 or st[-1] != '(':
return False # 栈空或栈顶不是'('返回假
st.pop()
if e == ']':
if len(st) == 0 or st[-1] != '[':
return False # 栈空或栈顶不是'['返回假
st.pop()
if e == '}':
if len(st) == 0 or st[-1] != '{':
return False # 栈空或栈顶不是'{'返回假
st.pop()
i += 1
return len(st) == 0
if __name__ == '__main__':
s = sys.stdin.readline()
print(isValid(s))