博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
可能的出栈序列问题
阅读量:4314 次
发布时间:2019-06-06

本文共 597 字,大约阅读时间需要 1 分钟。

可能的出栈序列问题

首先的前提是进栈一定是要按照顺序进栈如1、2、3、4的顺序,如果第一个出的是4,那么要依次先进栈1、2、3、4,

然后出栈,这样的话第一个是4,没有其他的元素可以再进栈了,所以只能按顺序出栈,这样出栈的顺序就是4、3、2、1。
假如出栈的顺序是3、4、2、1,你就要先分析出3的情况,只有先将1、2、3入栈,然后将3出栈。然后进栈4,再出栈4、2、1.

再如果出栈的顺序是3、2、4、1或3、2、1、4,先将1、2、3入栈,再出栈3、2,如果这个时候是前面的序列,就先进4,再出栈4、1,如果是后面的出栈顺序就出1,然后再入栈4,再出栈4,这样就会得到上面的序列了。

 

可以按照下面的方法来判断的:

假如入栈顺序为1234,给定一个出栈序列,如2431,它是合法的。
因为对于出栈序列中的每一个数字,在它后面的、比它小的所有数字,一定是按递减顺序排列的。

例如:

假如出栈序列为4123,显然不满足上述要求,因为对于4,它后面比它小的数字序列为123,递加,所以不是合法出栈序列。
若出栈为3142,也不合法,因为3后面比它小的1和2不是递减排列的。
若出栈为1234,则合法,因为对于每一个数字,它后面没有比它小的数字。
这种方法用来排除那些错误的出栈顺序很有效。

转载于:https://www.cnblogs.com/im0qianqian/p/5989392.html

你可能感兴趣的文章
基于Angular5和WebAPI的增删改查(一)
查看>>
windows 10 & Office 2016 安装
查看>>
最短路径(SP)问题相关算法与模板
查看>>
js算法之最常用的排序
查看>>
Python——交互式图形编程
查看>>
经典排序——希尔排序
查看>>
团队编程项目作业2-团队编程项目代码设计规范
查看>>
英特尔公司将停止910GL、915GL和915PL芯片组的生产
查看>>
团队编程项目作业2-团队编程项目开发环境搭建过程
查看>>
Stax解析XML示例代码
查看>>
cookie
查看>>
二级图片导航菜单
查看>>
<Using parquet with impala>
查看>>
OpenGL渲染流程
查看>>
委托异步回调
查看>>
扩展欧几里得算法
查看>>
いつでもどこでも本格的に麻雀&チュートリアルが充実!iPhone/iPod touch/iPad向け「雀龍門Mobile」をiPadで遊んでみました...
查看>>
如何重置mysql中的root密码
查看>>
bzoj 3171: [Tjoi2013]循环格 最小费用最大流
查看>>
关于IO的一些数字
查看>>