Image you are buliding a compiler. Before running any code, the compiler must check that the parentheses in the program are balanced.
Every opening bracket must have a corresponding closing bracket. We can approximate this using strings.
Given a string containing just the characters ‘(’, ‘)’, ‘{’, ‘}’, ‘[’ and ‘]’, determine if the input string is valid.
An input string is valid if:
- open brackets are closed by the same type of brackets.
- open brackets are closed in the correct order.
- Note that an empty string is also considered valid.
Example:
Input: “((()))” Output: True
Input: “[()]{}” Output: True
Input: “({[)]” Output: False
class Solution:
def isValid(self, s):
# TODO::
assert False, Solution.isValid("()(){(())")
assert True, Solution.isValid("")
assert True, Solution.isValid("([{}])()")