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
相关推荐
书中藏着宇宙5 分钟前
CornerNet的续篇(数据处理与训练)
开发语言·python
万粉变现经纪人8 分钟前
如何解决 pip install mysqlclient 报错 ‘mysql_config’ not found 问题
数据库·python·mysql·pycharm·bug·pandas·pip
海棠AI实验室11 分钟前
第五章 配置管理:用 YAML/ENV 让项目可迁移
python·yaml
love_summer12 分钟前
流程控制进阶:从闰年判断到猜数游戏的逻辑复盘与代码实现
python
JAVA+C语言12 分钟前
Java ThreadLocal 的原理
java·开发语言·python
小二·15 分钟前
Python Web 开发进阶实战:全链路测试体系 —— Pytest + Playwright + Vitest 构建高可靠交付流水线
前端·python·pytest
皇族崛起17 分钟前
【视觉多模态】基于视觉AI的人物轨迹生成方案
人工智能·python·计算机视觉·图文多模态·视觉多模态
HealthScience18 分钟前
常见的微调的方式有哪些?(Lora...)
vscode·python
nimadan1221 分钟前
**免费有声书配音软件2025推荐,高拟真度AI配音与多场景
人工智能·python
可触的未来,发芽的智生29 分钟前
完全原生态思考:从零学习的本质探索→刻石头
javascript·人工智能·python·神经网络·程序人生