def test0(self): stack = Stack() stack.push(1) self.assertEqual(stack.size(), 1) stack.push(2) stack.push(2) stack.push(2) stack.push(2) self.assertEqual(stack.size(), 5) stack.pop() self.assertEqual(stack.size(), 4)
class queueWith2Stacks: def __init__(self): self.stack1 = Stack() self.stack2 = Stack() def enqueue(self, value): self.stack1.push(value) def dequeue(self): if not self.stack2.size() > 0: self.move_content() return self.stack1.pop() def move_content(self): while self.stack1.size() > 0: self.stack2.push(self.stack1.pop())
def convert_to_base(dividend, base): s = Stack() hexadecimal = "0123456789ABCDEF" while dividend > 0: s.push(dividend % base) dividend //= base; length = s.size() binary = "" while length > 0: binary += str(hexadecimal[s.pop()]) length -= 1 return binary
def is_balanced(ip): s = Stack() match_pair = {')': '(', ']': '[', '}': '{'} for item in ip: if item == '{' or item == '(' or item == '[': s.push(item) else: if match_pair[item] == s.peak(): s.pop() else: return False ''' Return True if stack is empty, False otherwise ''' return not s.size()