--- title: '20. Valid Parentheses' description: Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid sidebar: label: 'Valid Parentheses' badge: 'Easy' --- Stack ### Example 1: - Input: `s = "()"` - Output: `true` ### Example 2: - Input: `s = "()[]{}"` - Output: `true` ### Example 3: - Input: `s = "(]"` - Output: `false` ### Example 4: - Input: `s = "([])"` - Output: `true` ### Example 5: - Input: `s = "([)]"` - Output: `false` ### Constraints: - `1 <= s.length <= 10^4` - `s` consists of parentheses only '()[]{}'. ## Solution ```py class Solution: def isValid(self, s: str) -> bool: stack = [] pairs = {")": "(", "]": "[", "}": "{"} for c in s: if c in pairs: if stack and pairs[c] == stack[-1]: stack.pop() else: return False else: stack.append(c) return True if not stack else False ```