方法一:使用字典 def isValid(s): c = ['(', '[', '{'] a = {")": "(", "}": "{", "]": "["} b = [0] for i in s: if i in c: b.append(i) elif a[i] == b[-1]: b.pop() else: b.append(i) return b == [0] print(isValid(input()))
方法二:使用栈
import 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))