Easy
以上,尝试写一下代码,AC!
python3
class CQueue:
def __init__(self):
self.putStack = []
self.getStack = []
def appendTail(self, value: int) -> None:
if len(self.getStack) != 0:
while len(self.getStack):
self.putStack.append(self.getStack[-1])
self.getStack.pop()
self.putStack.append(value)
def deleteHead(self) -> int:
if len(self.getStack) == 0:
if len(self.putStack) == 0:
return -1
while len(self.putStack):
self.getStack.append(self.putStack[-1])
self.putStack.pop()
head = self.getStack[-1]
self.getStack.pop()
return head
优化
上面的代码每次要新增的时候都倒回原来的杯子,再添加,但是我们可以不用倒回去。
新增的就直接往杯子1里面加,需要取的时候再倒到要取的杯子里就行了
尝试优化一下代码,AC!
python3
class CQueue:
def __init__(self):
self.putStack = []
self.getStack = []
def appendTail(self, value: int) -> None:
self.putStack.append(value)
def deleteHead(self) -> int:
if len(self.getStack):
return self.getStack.pop()
if not len(self.putStack):
return -1
while len(putStack):
self.getStack.append(self.putStack.pop())
return self.getStack.pop()