Skip to content
Leetcode
Esc
↑↓navigate↵open⌘Jpreview
On this page

20. Valid Parentheses

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

String

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 ‘()[]’.

Approach

Solution

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

Explanation

Last updated on September 24, 2026

Was this page helpful?