栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

2021-10-10

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-10-10

牛客网/剑指offer/2.两个栈模拟一个队列

python 2 语法

1.构造函数

        def __init__(self,...):

        ps:不写系统也会生成默认的无参构造方法。

2.self

        定义类时,构造函数和实例函数都需要将self作为第一个参数。

        作用:让self指向调用该实例方法的对象,或是指向被初始化的对象,以区分不同对象。

3.空: None

4.List(列表)的append、pop方法

List格式如下:

aList = [123, 'xyz', 'zara', 'abc'];    索引从‘0’开始

aList.append:将对象添加到列表末尾

aList.pop([index=-1]):  删除对象,默认操作对象下标为-1,即为最后一个元素

算法思路:

        两个栈,一个作为输入栈,一个作为输出栈,就能实现先进先出的队列效果。

        1.要注意从输入栈弹到输出栈时,要保证输出栈为空,否则会出现未定义的输出元素。

        2.输出时,要从输入栈取出一个后弹到输出栈,因此两个栈同空。

        3.弹出时要判断栈不为空

代码:

class Solution:
    def __init__(self):
        self.stack1 = []
        self.stack2 = []
    def push(self, node):
        self.stack1.append(node)
        # write code here
    def pop(self):
        if self.stack2 == []:
            while self.stack1:
                self.stack2.append(self.stack1.pop())
        if self.stack2 != []:
            return self.stack2.pop()
        else:
            return None
        # return xx
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/321724.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号