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
相关推荐
2601_967980118 小时前
Python列表操作方法详解
python·数据类型·修改·列表操作·功能汇总
Navigator_Z8 小时前
LeetCode //C - 1301. Number of Paths with Max Score
c语言·算法·leetcode
Patrick在香港9 小时前
台风在变少,来香港的没有
python·数据分析·香港·开放数据·热带气旋
qq_406981039 小时前
大白话rust系列09 函数调用两次有什么错?
开发语言·python·rust
benchmark_cc10 小时前
QuantDash 安装成功后,如何验证 Python 环境可以正常导入 SDK?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
zh路西法10 小时前
【模型式强化学习】(二)PETS——从概率动力学模型到模型预测控制(MPC)
pytorch·python·强化学习·pe·mpc·ces·pets
Nuanyt11 小时前
LeetCode Hot100 刷题笔记 · 普通数组专题
java·笔记·算法·leetcode
Python自动化直播12 小时前
智能脚本批量管理拆开看:导入、导出、重写、试听
前端·python·ai·秒播
春弦_12 小时前
LeetCode Hot 100 刷题笔记
笔记·leetcode·哈希算法
伤心的梧桐叶14 小时前
Picset与创客贴比等待时间,没做完的任务不能从表里消失
python