Skip to content

Latest commit

 

History

History
67 lines (57 loc) · 1.59 KB

File metadata and controls

67 lines (57 loc) · 1.59 KB

20. Valid Parentheses

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

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

Solutions (Python)

1. Remove Valid Parentheses by Stack

class Solution:
    def isValid(self, s: str) -> bool:
        if len(s) % 2 != 0:
            return False
        brackets = {')': '(', '}': '{', ']': '['}
        stack = []
        for c in s:
            if c in brackets and stack and stack[-1] == brackets[c]:
                stack.pop()
            else:
                stack.append(c)
        return not stack

2. Remove Valid Parentheses from String

class Solution:
    def isValid(self, s: str) -> bool:
        while s.count("()") or s.count("[]") or s.count("{}"):
            s = s.replace("()", "")
            s = s.replace("[]", "")
            s = s.replace("{}", "")
        return not s