有效的括号【栈】

Problem: 20. 有效的括号

文章目录

  • 思路 & 解题方法
  • 复杂度
  • Code

思路 & 解题方法

简单模拟。

复杂度

时间复杂度:

O ( n ) O(n) O(n)

空间复杂度:

O ( n ) O(n) O(n)

Code

class Solution:
    def isValid(self, s: str) -> bool:
        d = collections.defaultdict(str)
        d['('] = ')'
        d['['] = ']'
        d['{'] = '}'
        sta = []
        x = 0
        for ch in s:
            if x > 0:
                if d[sta[-1]] == ch:
                    x -= 1
                    sta.pop()
                else:
                    sta.append(ch)
                    x += 1
            else:
                sta.append(ch)
                x += 1
        return False if x else True

你可能感兴趣的:(研一开始刷LeetCode,python,数据结构,栈)