题解 | #【模板】队列#

https://www.nowcoder.com/practice/afe812c80ad946f4b292a26dd13ba549

两个栈来实现队列

核心思路是:栈(先进后出)弹出并压入另一个栈再弹出,完成先进先出

  1. 初始化两个栈,一个为输入栈s1,一个为输出栈s2,均使用list()实现
  2. 执行push,直接s1.append(x)
  3. 执行pop时:
    • 先检查输出栈s2是否为空,不为空直接pop
    • 再检查输入栈s1是否为空,为空则报错error
    • s1不为空则逐项pops2中,最后对s2执行pop
  4. 执行front时,和pop类似
    • 先检查输出栈s2是否为空,不为空直接返回栈顶s2[-1]
    • 再检查输入栈s1是否为空,为空则报错error
    • s1不为空则直接访问首个元素,即s1[0]
class Quene(object):
    def __init__(self):
        self.s1 = list()  # 输入栈
        self.s2 = list()  # 输出栈

    def push(self, x):
        self.s1.append(x)

    def pop(self):
        if len(self.s2):
            return self.s2.pop()
        if not len(self.s1):
            return 'error'
        for i in range(len(self.s1)):
            self.s2.append(self.s1.pop())
        return self.s2.pop()

    def front(self):
        if len(self.s2):
            return self.s2[-1]
        if not len(self.s1):
            return 'error'
        return self.s1[0]

    def check(self, d):
        if d == 'pop':
            print(self.pop())
        elif d == 'front':
            print(self.front())
        else:
            self.push(int(d.split()[-1]))


n = input()
tmp = Quene()
for _ in range(int(n)):
    data = input()
    tmp.check(data)
全部评论

相关推荐

01-20 16:53
郑州大学 Java
点赞 评论 收藏
分享
2024-11-28 11:51
门头沟学院 Java
一、前言:在发布1.0版时候,收到了广大网友大佬的建议,在此感谢各位网友大佬们二、修改:1,奖项不明显:奖项都 一 一罗列起来,能突出重点,观感也提升不少,给HR感觉竞赛能力强2,字体繁重:在之前的字体发现字体丑,都重影了,所以更改成阿里字体,更清晰3,技能优化:增加了一些必要的SpringClould、算法,Docker等重要技能4,自我评价:考虑了许久还是选择保留,在不影响观感,且能让HR了解自己更多一点三、以后考虑1,技能:希望简历上尽快能加一个SpringCloud相关项目,且增加一项不同方向的项目如RPC、秒杀,权限系统2,计算机基础:最近有空就在补操作系统,计网等计算机基础。一来能提高自己,二来能写在简历上加分3,头像:等自己帅的时候拍一张正装照片4,加粗:在认为好的地方,重点需要突出的地方加粗加黑处理!4,。。。。。(留给广大网友大佬们补充)四、一个星期的经历 I,心凉在写完简历后就在boss上投了简历,100份就要了1份,躺平,迷茫,心累等负面情绪铺面袭来!II,总结经验1,二本学历硬伤,不过多思考,尽自己努力2,在这一周时间我让自己慢下来,学学基础,总结项目,去深入研究,心态逐渐变好了,不浮躁了。3,心态逐渐变好了一些之后,开始投修改后的简历,确实有所提升,可能是简历变好了和HR逐渐变多了。4,之后准备二分化,一半时间用来深造自己,另一半时间用来海投!五、激励冲冲冲,无论怎么样,尽自己努力,相信自己的能力以及运气,幸运总会轮到你的!!!过了这段阴暗便是彩虹!!#简历被挂麻了,求建议##最后再改一次简历##实习##听劝,我这个简历该怎么改?#
siestaaaaaa:奖项按含金量从高往低排,只写最有含金量的几个就可以了,英语只是四级可以不写。黑字要能经住拷打。项目成果要量化。自我评价真别写,想放可以放到在线简历上。简历整体浓缩成一页。海投!
投递阿里巴巴等公司10个岗位 简历被挂麻了,求建议 最后再改一次简历
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客企业服务