Skip to content

[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

Last updated: