2つのスタックキューを達成するために - のオファーを受賞

タイトル説明

キューを達成するための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()

 

公開された45元の記事 ウォンの賞賛1 ビュー3353

おすすめ

転載: blog.csdn.net/qq_22498427/article/details/104708663