题目大意: 给出一个入栈序列,再给一个序列,要你判断这个序列是不是这个入栈序列的出栈序列..
什么是入栈序列,大概就是能通过入栈出栈一系列骚操作得到的一个序列。
以1 2 3 4 5为例子吧
第一次也没什么骚操作了,只能入栈了是吧^_^.
然后第二次可以把二入栈(做法2),也可以把它直接出栈(做法1)(先入栈然后马上出栈)
我们选择将2直接出栈 此时总结下状态 栈内有1,栈外有2 待处理的数字就有3、4、5这两个。处理3、4、5时也是类似的,不过这时候如果栈内不为空(这时候有1),就可以考虑把1也出栈。
让我们快进一下.. 考虑这种情况
这种情况下 序列 2 3 4 1 5和 2 3 4 5 1 都是正确的出栈序列。
接下来是代码实现了 我们开一个数组a存入栈序列,再开一个数组b存验证序列,开一个栈实现模拟这个过程。
下面给出核心代码。 t是指向数组b当前要检查的数字。
for(j=1;jq;stack p;
for(i=1;i>n;t=1; memset(a,0,sizeof(a));memset(b,0,sizeof(b));
for(j=1;j>a[j];
}
for(j=1;j>b[j];
}
for(j=1;j
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?