剑指 队列生成栈

用两个栈实现队列

http://www.nowcoder.com/questionTerminal/54275ddae22f475981afa2244dd448c6

需要自己定义def __ init__() 类的属性,然后push 操作直接放入self.stack1 当取出的时候,需要判断stack2中是否有元素 如果有直接取出 ,如果没有,则将self.stack1中元素放入self.stack2中再进行取出。

# -*- coding:utf-8 -*-
class Solution:
    def __init__(self):
        self.stack1=[]
        self.stack2=[]
    def push(self, node):
        # write code here 
        self.stack1.append(node)
    def pop(self):

        if len(self.stack2)==0:
            if len(self.stack1)==0:
                return False
            else:
                while self.stack1:
                    self.stack2.append(self.stack1[-1])
                    self.stack1.pop()



        result=self.stack2[-1]
        self.stack2.pop()
        return result         
        # return xx

直接获取pop的值

# -*- coding:utf-8 -*-
class Solution:
    def __init__(self):
        self.stack1=[]
        self.stack2=[]
    def push(self, node):
        # write code here 
        self.stack1.append(node)
    def pop(self):

        if len(self.stack2)==0:
            if len(self.stack1)==0:
                return False
            else:
                while self.stack1:
                    self.stack2.append(self.stack1.pop())
                    #self.stack1.pop()

        #result=self.stack2[-1]

        return self.stack2.pop()       
        # return xx
全部评论

相关推荐

09-23 17:42
门头沟学院 Java
兄弟们我绷不住了,小米要求10月份参加编程考试,20级以下(王腾好像21),正式和外包都得去,还要部门大排名,一巴掌给我抽象的回到大学
flex*1022:雷:我们想了很久,到底怎么样才能让用户满意,让工程师保持手感,经过长达180天的思考,我连夜睡服高管,决定发起内部考试,以编程为主
投递小米集团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务