示例#1
0
 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)
示例#2
0
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
示例#4
0
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()