---
# System prepended metadata

title: '#20 Valid Parentheses'
tags: [LeetCode, ' Top100']

---

---
title: "#20 Valid Parentheses"
tags: LeetCode, Top100
---
#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:

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

Example 1:
--
>Input: s = "()[]{}"
Output: true

Example 2:
--
>Input: s = "([)]"
Output: false

解題思維
--
就很典型的stack問題。


Stack
--
```python=
class Solution:
    def isValid(self, s: str) -> bool:
        right = {')': '(', ']': '[', '}': '{'}
        stack = ['']
        for str in s:
            if str in right:
                if stack[-1] == right[str]:
                    stack.pop()
                else:
                    return False
            else:
                stack.append(str)
        if len(stack) == 1:
            return True
        return False
```