打卡题目:leetcode第20题,有效的括号
    相似题目:71、84
    image.png
    image.png


    【思路】
    使用栈结构,遍历字符串,遇到左括号,则压栈;遇到右括号,则弹栈(左括号),并判断两个括号是否对应。
    注意:弹栈时,可能栈为空!


    【代码】

    1. class Solution:
    2. def isValid(self, s: str) -> bool:
    3. stack = []
    4. d = {
    5. ')': '(',
    6. ']': '[',
    7. '}': '{'
    8. }
    9. for i, si in enumerate(s):
    10. # 遇到右括号,判断栈里是否有对应的左括号
    11. if si in d.keys():
    12. if len(stack) == 0 or stack[-1] != d[si]:
    13. return False
    14. else:
    15. stack.pop()
    16. # 遇到左括号,压栈
    17. else:
    18. stack.append(si)
    19. return len(stack) == 0