千家信息网

golang刷leetcode技巧之如何实现栈的压入、弹出序列

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,小编给大家分享一下golang刷leetcode技巧之如何实现栈的压入、弹出序列,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二
千家信息网最后更新 2025年12月01日golang刷leetcode技巧之如何实现栈的压入、弹出序列

小编给大家分享一下golang刷leetcode技巧之如何实现栈的压入、弹出序列,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {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), push(4), pop() -> 4,

push(5), pop() -> 5, pop() -> 3, pop() -> 2, pop() -> 1

示例 2:

输入:pushed = [1,2,3,4,5], popped = [4,3,5,1,2]

输出:false

解释:1 不能在 2 之前弹出。

提示:

0 <= pushed.length == popped.length <= 1000

0 <= pushed[i], popped[i] < 1000

pushed 是 popped 的排列。

解题思路

1,本题主要考察入栈出栈的理解

2,golang slice可以很容易实现栈

3,每次pushed入栈后popped 进行比较

4,如果栈非空,且poped的当前元素和栈顶元素相等,则出栈,同时右移popped指针

代码实现

func validateStackSequences(pushed []int, popped []int) bool {    var s stack    j:=0    for i:=0;i        s.push(pushed[i])         for !s.empty() && s.top()==popped[j]{             s.pop()             j++            //if j            // fmt.Println("inner:",s.data,i,j,popped[j],s.top())            //}         }         //if j         //fmt.Println(s.data,i,j,popped[j])         //}    }    return s.empty() && j==len(popped)}
type stack struct{ data []int}
func (s *stack )push(v int){ s.data=append(s.data,v)}
func (s *stack)pop()int{ v:=s.data[len(s.data)-1] s.data=s.data[:len(s.data)-1] return v}
func(s*stack)top()int{ return s.data[len(s.data)-1]}
func (s*stack)empty()bool{ return len(s.data)==0}

看完了这篇文章,相信你对"golang刷leetcode技巧之如何实现栈的压入、弹出序列"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

序列 顺序 输入 技巧 元素 示例 篇文章 解释 输出 两个 代码 同时 完了 思路 指针 数字 整数 更多 本题 知识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 哈弗f 7听音乐连接不上服务器 软件开发源码保密协议 通州区网络营销软件开发价格信息 我是网络安全员简笔画 程绍银网络安全知识培训 电子商务系统数据库设计 嘉兴工控软件开发 如何和服务器建立安全链接 神佑释放链接不上服务器 按照网络安全等级 网络安全隔离论文 python提高数据库查找速度 网络安全宣传周宣传板内容 数据库排他锁共享锁 JDBC技术进行数据库编程步骤 深入开展网络安全督导检查 网页放到服务器上 延庆区软件开发服务电话 服务器硬盘有多少寸的 软件开发大学有哪些问题 网络安全与实验教程ppt 用数据库创建一个简单的表格 5g时代是不是需要更多的服务器 网络安全宣传小视频怎么做 数据库中的数据有独立性 学校网络安全教育宣传信息 魔兽如何关闭语音聊天服务器 东富龙隔离器数据库 简述软件开发几个阶段的内容 县医保局网络安全建设
0