Balanced Brackets

  • + 0 comments
    def isBalanced(s):
        # Write your code here
        open_bracket = "{[("
        enclose_bracket = "}])"
        pairs = ["{}", "[]", "()"]
        
        if len(s) % 2 != 0:
            return "NO"
        
        if s[0] in enclose_bracket or s[-1] in open_bracket:
            return "NO"
        
        stack = []
        for p in s:
            if p in open_bracket:
                stack.append(p)
            else:
                if len(stack) == 0:
                    return "NO"
                    
                pair = stack.pop() + p
                if pair not in pairs:
                    return "NO"
        
        return "YES"