def test_empty(self): new_stack = Stack() new_stack.add(60) result_not_empty = new_stack.is_empty() self.assertTrue(result_not_empty) new_stack.remove() result_empty = new_stack.is_empty() self.assertFalse(result_empty)
def check_balance(input_text, brackets=BRACKETS): brackets_stack = Stack() brackets_stack.list_of_values = [] open_brackets = brackets[::2] close_brackets = brackets[1::2] # Проходим по каждому символу входного текста for symbol in input_text: # если символ это открывающая скобка, то добавляем его в стек if symbol in open_brackets: brackets_stack.push(open_brackets.index(symbol)) # или если символ это закрывающая скобка elif symbol in close_brackets: # и если стек не пуст и последняя добавленная открывающая скобка такого же типа, то удаляем if (not brackets_stack.is_empty()) and (brackets_stack.peek() == close_brackets.index(symbol)): brackets_stack.pop() # если не такого же типа, то сразу выводим ошибку else: return print('Несбалансированно') # проверяем стек, если он пустой, то возвращаем 'Сбалансированно', иначе - 'Несбалансированно' if not brackets_stack.list_of_values: return print('Сбалансированно') else: return print('Несбалансированно')