# 20. Valid Parentheses

#### Easy

***

Given a string `s` containing just the characters `'('`, `')'`, `'{'`, `'}'`, `'['` and `']'`, determine if the input string is valid.

An input string is valid if:

1. Open brackets must be closed by the same type of brackets.
2. Open brackets must be closed in the correct order.

&#x20;

**Example 1:**

```
Input: s = "()"
Output: true
```

**Example 2:**

```
Input: s = "()[]{}"
Output: true
```

**Example 3:**

```
Input: s = "(]"
Output: false
```

&#x20;

**Constraints:**

* `1 <= s.length <= 104`
* `s` consists of parentheses only `'()[]{}'`.

```python
class Solution:
    def isValid(self, s: str) -> bool:
        l = []
        for char in list(s):
            if char in ('}', ']', ')'):
                if len(l) == 0 or not self.check_valid(char, l[-1]):
                    return False
                else:
                    l.pop()
            else:
                l.append(char)
        return False if len(l) != 0 else True
    
    def check_valid(self, char, top):
        if top == '(' and char != ')':
            return False
        elif top == '[' and char != ']':
            return False
        elif top == '{' and char != '}':
            return False
        return True
```
