# 20. Valid Parentheses

{% embed url="<https://leetcode.com/problems/valid-parentheses/>" %}

要依序判断已经遍历过的括号的开闭状态，可以用`stack`，遇到对不上的直接 False。遍历完了还有没关上的括号也直接 False.

懒得写状态函数了，反正就三个，直接`dict`解决。

```python
class Solution:
    def isValid(self, s: str) -> bool:
        n = len(s)
        pairs = {'(':')', '[':']', '{':'}'}
        stack = []
        for i in range(n):
            if s[i] in pairs:
                stack.append(s[i])
            else:
                if not stack or pairs[stack.pop()] != s[i]: 
                    return False
        return True if not stack else False
```
