20. Valid Parentheses

Easy


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.

Example 1:

Input: s = "()"
Output: true

Example 2:

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

Example 3:

Input: s = "(]"
Output: false

Constraints:

  • 1 <= s.length <= 104

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

class Solution:
    def isValid(self, s: str) -> bool:
        l = []
        for char in list(s):
            if char in ('}', ']', ')'):
                if len(l) == 0 or not self.check_valid(char, l[-1]):
                    return False
                else:
                    l.pop()
            else:
                l.append(char)
        return False if len(l) != 0 else True
    
    def check_valid(self, char, top):
        if top == '(' and char != ')':
            return False
        elif top == '[' and char != ']':
            return False
        elif top == '{' and char != '}':
            return False
        return True

Last updated