剑指offer31 栈的压入、弹出序列

剑指 Offer 31 栈的压入、弹出序列 💖💖感谢各位观看这篇文章,💖💖点赞💖💖、收藏💖💖、你的支持是我前进的动力!💖💖 💖💖感谢你的阅读💖,专栏文章💖持续更新!💖关注不迷路!!💖 🥝🥝 剑指 Offer 31. 栈的压入、弹出序列 🚄🚄 辅助栈 🚄🚄原地栈 阅读详情

剑指offer31 栈的压入、弹出序列

     输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。

     假设压入栈的所有数字均不相等。

     例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。

     注意:若两个序列长度不等则视为并不是一个栈的压入、弹出序列。若两个序列都为空,则视为是一个栈的压入、弹出序列。

样例

输入:[1,2,3,4,5]
      [4,5,3,2,1]

输出:true

思路:

     用一个栈去模拟,把进栈队列依次入站,然后碰到出栈队列则出栈,最后判断栈是否为空以及进栈队列是否都已进栈,出栈队列是否都出栈。

AcWing-42 c++ code:

class Solution {
public:
    bool isPopOrder(vector<int> pushV,vector<int> popV) {
        if(pushV.size() != popV.size()){
            return false;
        }
        int n = pushV.size();
        stack<int> nums;
        int indexPop = 0;
        for(int i = 0; i < n; i++){
            nums.push(pushV[i]);
            while(!nums.empty() && nums.top() == popV[indexPop]){
                nums.pop();
                indexPop++;
            }
        }
        if(indexPop == n){
            return true;
        }else{
            return false;
        }
    }
};

AcWing-42 python code:

class Solution(object):
    def isPopOrder(self, pushV, popV):
        """
        :type pushV: list[int]
        :type popV: list[int]
        :rtype: bool
        """
        if len(pushV) != len(popV):
            return False
        elif len(pushV) == len(popV) ==0:
            return True
        s = []
        pushV_id = 0;
        popV_id = 0;
        n = len(pushV)
        while pushV_id < n:
            s.append(pushV[pushV_id])
            pushV_id += 1
            
            while len(s) != 0 and popV_id < n and s[-1] == popV[popV_id]:
                s.pop()
                popV_id += 1
            
        if popV_id < n:
            return False
        else:
            return True
ATM火控电容改造实战:提升速凌无刷电机动力与系统稳定性 在嵌入式系统与电机驱动领域,电源完整性是保障电路稳定运行的核心基础。其核心原理在于通过合理的电容网络设计,为负载提供瞬时大电流并滤除高频噪声,从而维持电压稳定。这项技术的核心价值在于能显著提升系统的动态响应能力与可靠性,避免因电压跌落导致微控制器复位或功率器件过应力。典型的应用场景包括无人机电调、机器人关节驱动以及各类需要快速响应的伺服系统。本文聚焦于水弹发射器ATM火控系统的硬件迭代,通过详解电容的选型、布局与焊接流程,特别是针对速凌五代无刷电机的高启动电流特性,系统性地阐述了如何通过强化电源储能与芯片去 阅读详情

相关推荐

从零构建AI辅助逆向分析环境:JADX-MCP与LLM的实战集成指南

本文详细介绍了如何从零构建AI辅助逆向分析环境,通过集成JADX-MCP与LLM技术,提升Android应用逆向工程效率。文章涵盖环境搭建、插件安装、MCP服务器配置及实战案例分析,帮助开发者快速掌握AI在代码理解、漏洞挖掘和自动化文档生成中的应用。

weixin_27875131的博客 839

空间计算与Web3融合:技术挑战、架构实践与未来展望

空间计算作为下一代互联网的核心技术,通过增强现实(AR)、虚拟现实(VR)和物联网(IoT)将数字信息与物理环境无缝融合,实现了从二维界面到三维沉浸式交互的范式迁移。其技术原理依赖于实时情境感知、空间锚定和数字对象持久化,为游戏、社交、物联网等领域带来了全新的应用场景。然而,这种融合对现有的Web3基础设施提出了严峻挑战,尤其是在可扩展性、用户体验和隐私保护方面。Web3通过区块链、智能合约和去中心化身份(DID)构建了去中心化的数字所有权和价值流动层,但其现有的交易吞吐量、Gas费用和密钥管理机制难以满足

weixin_30614109的博客 450

Spacedesk保姆级教程:用旧平板给Windows电脑当副屏,从安装到避坑一步到位

本文提供Spacedesk保姆级教程,教你如何将旧平板变成Windows电脑的副屏,从软件安装到网络配置、显示优化及声音交互,一步步避开常见陷阱。通过WiFi实现扩展屏功能,支持4K分辨率和60Hz刷新率,让闲置设备焕发新生。

weixin_42524945的博客 1万+

剑指offer31. 栈的压入弹出序列 P168

剑指offer31. 栈的压入弹出序列 P168 题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1、2、3、4、5是某栈的压栈序列,序列4、5、3、2、1是该压栈序列对应的一个弹出序列,但4、3、5、1、2就不可能是该压栈序列的弹出序列。 用辅助栈 s,nums是给定的弹出序列,inputs是压栈序列 如果栈...

lonelyVM的博客 172

cadence virtuoso 激励信号源

vpulse,vpwl,vsin,vsource信号源介绍

努力学习的IC小白 3万+

告别版本冲突!在Ubuntu 20.04上优雅实现ROS Noetic与ROS2 Foxy双环境切换

本文详细介绍了在Ubuntu 20.04系统上实现ROS Noetic(ROS1)与ROS2 Foxy双环境共存与切换的完整方案。通过智能脚本设计和工作空间隔离,解决了版本冲突问题,帮助开发者高效管理不同ROS版本项目。特别适合需要同时开发ROS1和ROS2应用的机器人开发者。

weixin_28452161的博客 411

学习笔记 | Python版本 剑指 Offer 31. 栈的压入、弹出序列

剑指 Offer 31. 栈的压入、弹出序列 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1}是该压栈序列对应的一个弹出序列,但{4,3,5,1,2}就不可能是该压栈序列的弹出序列。 示例 1: 输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1] 输出:true 解释:我们可以按以下顺序执行: push(1), pu

大虎牙的博客 342

Transformer实战(40)——Transformer时间序列数据建模

Transformer 因其在自然语言处理 (Natural Language Processing, NLP) 任务中的优异表现而被广泛应用,其主要优势在于能够有效建模时间序列数据。这些数据可以是文本,也可以是非文本。本节将介绍如何使用 Transformer 进行时间序列数据建模和预测,将学习时间序列的基本概念,并在此基础上使用一个简单的模型,用以初步了解时间序列数据,并为各种预测任务奠定基础。

盼小辉丶的博客 2361

leetcode 剑指 Offer 31. 栈的压入、弹出序列

剑指 Offer 31. 栈的压入、弹出序列 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。 示例 1: 输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1] 输出:true 解释:我们可以按以下顺序执行: push(1), pu

Qin_酱的博客 349

【AI智能体】Codex 生成高质量电商套图实战操作详解

Codex 生成高质量电商套图实战操作详解

congge 4524

基于STM32的多传感器融合的设施农业小型搬运机器人避障控制系统设计

针对设施农业场景中狭窄通道、障碍物多样(如农机具、作物植株、水管)的特点,设计一款基于 STM32 的小型搬运机器人避障控制系统。系统通过多传感器融合实现 360° 环境感知,采用模糊 PID 控制算法实现平滑避障,满足温室、大棚等场景的搬运需求。通过在温室环境测试,系统可实现对直径≥5cm 障碍物的有效检测(检测距离误差≤5%),避障转向半径≤30cm,平均功耗≤15W。后续可通过增加激光雷达(如 TFmini)提升远距离障碍物检测能力,结合 SLAM 算法实现路径规划。

weixin_42300449的博客 860

剑指 Offer 31. 栈的压入、弹出序列

剑指 Offer 31. 栈的压入、弹出序列 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。 注意:判断压栈出栈的顺序是否一致,即判断入栈时元素和出栈元素的peek()是否一致,不一致时继续入栈,一致时出栈,最后盘算stack是否为空即可。 public

weixin_46801232的博客 133

python实现序列比对之Needleman-wunsch算法 (附完整源码)

python实现序列比对之Needleman-wunsch算法 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 461

LeetCode 剑指 Offer 31. 栈的压入、弹出序列 | C/C++/java语言版

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。

weixin_45992021的博客 350

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

剑指 Offer 31. 栈的压入、弹出序列 - 力扣(LeetCode)

剑指 Offer 31. 栈的压入、弹出序列 - 力扣(LeetCode)

Onwaier的博客 531

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【剑指 Offer 随笔】剑指 Offer 31. 栈的压入、弹出序列 ----- 辅助栈

剑指 Offer 31. 栈的压入、弹出序列 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/zhan-de-ya-ru-dan-chu-xu-lie-lcof 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。 .

qq_42281215的博客 137

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

剑指 Offer(第2版)面试题 31:栈的压入、弹出序列

剑指 Offer(第2版)面试题 31:栈的压入、弹出序列

ProgramNovice的博客 540

剑指offer系列——剑指 Offer 31. 栈的压入、弹出序列

大家好!本篇文章将介绍的剑指offerOJ题,来自力扣[剑指 Offer 31. 栈的压入、弹出序列],本文将以这道题为背景,介绍栈不可能的出栈序列,展示代码语言暂时为:Java,如果你对栈还不是很熟悉,建议阅读:栈与Stack类。

未见花闻的博客 1226

每日一题-剑指 Offer 31. 栈的压入、弹出序列

每日一题 - 剑指 Offer 31. 栈的压入、弹出序列 题目信息 时间: 2019-06-25 题目链接:Leetcode tag:栈 难易程度:中等 题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。 示例1: 输入:pushed

一只小菜鸡的博客 264

【剑指 Offer 31】栈的压入、弹出序列

题目 题目链接 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。 示例 1: 输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1] 输出:true 解释:我们可以按以下顺序执行: push(1), push(2), push(3),

WormholeStack 968

剑指offer 31 栈的压入、弹出序列

@author: sdubrz @date: 8/2/2020 9:02:57 AM 难度: 中等 考察内容: 栈 @e-mail: lwyz521604#163.com 题目来自《剑指offer》 电子工业出版社 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。

仰起脸笑得像满月 252

LeetCode946 验证栈序列 & 剑指Offer 31 栈的压入、弹出序列

LeetCode946 验证栈序列 & 剑指Offer 31 栈的压入、弹出序列题目解题:贪心 题目 解题:贪心 代码参考:面试题31. 栈的压入、弹出序列(模拟,清晰图解) // javascript var validateStackSequences = function(pushed, popped) { const n = pushed.length; const stk = []; let i = 0; for (const num of pushed

756

剑指offer 31——栈的压入、弹出序列

本题主要在于考察栈的特性,优化时可以考虑自己实现一个栈。原题输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 ...

death05的博客 350
上一篇: 20190608-剑指offer30-AcWing-41. 包含min函数的栈
下一篇: 剑指offer32.1 不分行从上往下打印二叉树
WangXu__
博客等级 码龄9年 3粉丝 156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值