20. Valid Parentheses

Valid Parentheses - LeetCode

Given a string s 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. 

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 '()[]{}'

  • code
class Solution:
    def isValid(self, s: str) -> bool:
        dic = {')':'(','}':'{',']':'['}
        stack = []
        for c in s:
            if c not in dic:
                stack.append(c)
            else:
                if not stack or stack[-1] != dic[c]: return False
                stack.pop()
        return not stack
  • code
class Solution:
    def isValid(self, s: str) -> bool:
        par = {"(":")", "{":"}", "[":"]"}
        stack = []
        for v in s:
            if v in par:
                stack.append(v)
            else:
                if not stack or par[stack.pop()] != v:
                    return False
        return not stack