A bracket is considered to be any one of the following characters: (, ), {?, }?, [, or ] and matching or pair of brackets are () or {?}? or [].
You are required to check if the expression is balanced, i.e. closing brackets and opening brackets match up well. Write a function that takes a string input containing a sequence of brackets, and returns a boolean indicating whether those brackets are balanced. You can assume the input string only contains valid bracket characters.
Examples:
Input: "{?{?[[(())]]}?}?"
Output: true
Input: "({?])"
Output: false
Input: "{?[]()[()]}?"
Output: true
Input: "[(])"
Output: false