###### tags: `String`, `Stack`
# LeetCode 20.Valid Parentheses
Given a string s containing just the characters ```'('```, ```')'```, ```'{'```, ```'}'```, ```'['``` and ```']'```, determine if the input string is valid.
An input string is valid if:
Open brackets must be closed by the same type of brackets.
Open brackets must be closed in the correct order.
Every close bracket has a corresponding open bracket of the same type.
>Example 1:
```
Input: s = "()"
Output: true
```
>Example 2:
```
Input: s = "()[]{}"
Output: true
```
>Example 3:
```
Input: s = "(]"
Output: false
```
### Constraints:
- $1 <= s.length <= 10^4$
- ```s``` consists of parentheses only ```'()[]{}'```.
---
### Idea:
>
### Solution:
Python:
```python=
class Solution:
def isValid(self, s: str) -> bool:
stack = []
for i in range(len(s)):
if s[i]=='(' or s[i]=='[' or s[i]=='{':
stack.append(s[i])
elif len(stack)!=0:
top = stack[-1]
if top=='(':
if s[i]==')':
stack.pop()
else:
return False
elif top=='[':
if s[i]==']':
stack.pop()
else:
return False
elif top=='{':
if s[i]=='}':
stack.pop()
else:
return False
else:
return False
else:
return False
if stack==[]:
return True
```
C++:
```cpp=
```