タイトル説明
キューを達成するための2つのスタック、完了キューのプッシュとポップ操作。キューの要素がint型。
アイデア:
暴力:2つのスタックのstack1、stack2。stack1は、ストアデータ、各プッシュでデータ、2で割っstack2により、stack1のデータを取り出し、そして、それらにプッシュデータにするために使用されます。最後に、元のデータを戻します。
# -*- coding:utf-8 -*-
class Solution:
def __init__(self):
self.stack1 = []
self.stack2 = []
def push(self, node):
for i in range(len(self.stack1)):
self.stack2.append(self.stack1.pop())
self.stack1.append(node)
for i in range(len(self.stack2)):
self.stack1.append(self.stack2.pop())
def pop(self):
return self.stack1.pop()
# return xx
最適化:
stack1は、makeスタックとスタック、stack2として使用します。限り、直接缶stack2にデータが存在するように、そこにはデータがなく、stack1 stack2に順次データが内部に取り付けられstack2場合。
class Solution:
def __init__(self):
self.stack1 = []
self.stack2 = []
def push(self, node):
self.stack1.append(node)
def pop(self):
if len(self.stack2)<0:
for i in range(len(self.stack1)):
self.stack2.append(self.stack1.pop())
return self.stack2.pop()