def check_balanced_brackets(bracket_str): bracket_list = list(bracket_str) bracket_stack = Stack() for symbol in bracket_list: if symbol in ['(', '{', '[']: bracket_stack.push(symbol) continue elif symbol in [')', '}', ']']: if not bracket_stack.is_empty() and pair_match( symbol, bracket_stack.peak()): bracket_stack.pop() else: return False else: raise Exception('Invalid symbol found') return bracket_stack.is_empty()
def test_peak(self): stack = Stack() self.assertIsNone(stack.peak()) stack.push(5) self.assertEqual(stack.peak(), 5) self.assertEqual(len(stack), 1)