[20] Valid Parentheses
https://leetcode.com/problems/valid-parentheses/description/
- algorithms
- Easy (35.05%)
- Source Code: 20.valid-parentheses.py
- Total Accepted: 561.3K
- Total Submissions: 1.5M
- Testcase Example: '"()"'
Given a string 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.
Note that an empty string is also considered valid.
Example 1:
Input: "()" Output: true
Example 2:
Input: "()[]{}" Output: true
Example 3:
Input: "(]" Output: false
Example 4:
Input: "([)]" Output: false
Example 5:
Input: "{[]}" Output: true
python
class Solution(object):
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""
stack = []
table = {
')': '(',
']': '[',
'}': '{'
}
if not s: return True
for c in s:
if c in ['(', '{', '[']:
stack.append(c)
else:
if not stack or not stack[-1] == table[c]: return False
stack.pop(-1)
if stack: return False
return True