Python | Leetcode Python题解之第341题扁平化嵌套列表迭代器

题目:

题解:

python 复制代码
class NestedIterator:
    def __init__(self, nestedList: [NestedInteger]):
        # 对于nestedList中的内容,我们需要从左往右遍历,
        # 但堆栈pop是从右端开始,所以我们压栈的时候需要将nestedList反转再压栈
        self.stack = nestedList[::-1]

    def next(self) -> int:
        # hasNext 函数中已经保证栈顶是integer,所以直接返回pop结果
        return self.stack.pop(-1).getInteger()

    def hasNext(self) -> bool: 
        # 对栈顶进行'剥皮',如果栈顶是List,把List反转再依次压栈,
        # 然后再看栈顶,依次循环直到栈顶为Integer。
        # 同时可以处理空的List,类似[[[]],[]]这种test case           
        while len(self.stack) > 0 and self.stack[-1].isInteger() is False:
            self.stack += self.stack.pop().getList()[::-1]
        return len(self.stack) > 0
相关推荐
kkoral1 分钟前
基于MS-Swift 为 Qwen3-0.6B-Base 模型搭建可直接调用的 API 服务
python·conda·fastapi·swift
PythonFun2 分钟前
WPS多维表结合Python实现在线批量查词
开发语言·python·wps
爱笑的眼睛1110 分钟前
深入 Django 表单 API:从数据流到高级定制
java·人工智能·python·ai
万粉变现经纪人12 分钟前
Python系列Bug修复PyCharm控制台pip install报错:如何解决 pip install 网络报错 企业网关拦截 User-Agent 问题
网络·python·pycharm·beautifulsoup·bug·pandas·pip
杜子不疼.16 分钟前
【LeetCode 704 & 34_二分查找】二分查找 & 在排序数组中查找元素的第一个和最后一个位置
算法·leetcode·职场和发展
AIOps打工人18 分钟前
Grafana Query MCP:基于FastAPI的Grafana查询转换与分页服务
运维·数据库·python·ai·grafana·fastapi·devops
LYFlied19 分钟前
【每日算法】LeetCode 437. 路径总和 III
前端·算法·leetcode·面试·职场和发展
_OP_CHEN20 分钟前
【Python基础】(四)Python 语法基础终篇——函数 / 列表 / 字典 / 文件操作一次吃透!
开发语言·python
小鸡吃米…21 分钟前
Python - 数据库访问
数据库·python
阿_旭1 小时前
Python中3类目标检测方法详解:从原理到实践
python·目标检测