Ejemplo n.º 1
0
Archivo: 3.4.py Proyecto: susnchen/CtCI
class MyQueue:
    def __init__(self):
        self.stack1 = Stack(0)
        self.stack2 = Stack(0)
        self.stack1.pop()
        self.stack2.pop()
        self.use1 = True

    def add(self, value):
        if self.use1:
            self.stack1.push(value)
        else:
            self.stack2.push(value)

    def remove(self):
        if self.use1:
            self.use1 = not self.use1
            while (not self.stack1.isEmpty()):
                self.stack2.push(self.stack1.pop())
            return self.stack2.pop()
        else:
            self.use1 = not self.use1
            while (not self.stack2.isEmpty()):
                self.stack1.push(self.stack2.pop())
            return self.stack1.pop()
Ejemplo n.º 2
0
def parChecker(string):
    s=Stack()
    balanced=True
    index=0
    while index<len(string) and balanced:
        symbol=string[index]
        if symbol in "([{":
            s.push(symbol)
        else:
            if s.isEmpty():
                balanced=False
            else:
                top=s.pop()
                ## we have to see the top that we have removed matches the symbol
                if not matches(top,symbol):
                    balanced=False

        index+=1
    if balanced and s.isEmpty():
        return True
    else:
        return False