Skip to main content

Command Palette

Search for a command to run...

Valid Parentheses

Published
•1 min read•View as Markdown
B
Senior Software Engineer | Backend, Cloud, Data, Machine Learning

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.

  3. Every close bracket has a corresponding open bracket of the same type.

Example 1:

Input: s = "()"
Output: true

Example 2:

Input: s = "()[]{}"
Output: true

Example 3:

Input: s = "(]"
Output: false

Constraints:

  • 1 <= s.length <= 10<sup>4</sup>

  • s consists of parentheses only '()[]{}'.

Solutions:

class Solution:
    def isValid(self, s: str) -> bool:
        Map = {")": "(", "]": "[", "}": "{"} # close -> open
        stack = []

        for c in s:
            # check for the start paranthesis
            if c not in Map:
                stack.append(c)
                continue
            # For the end paranthesis not in order
            if not stack or stack[-1] != Map[c]:
                return False
            stack.pop()

        return not stack

More from this blog

yesicbap

437 posts