元素出栈入栈的合法性
来源:互联网 发布:php 图片转base64 编辑:程序博客网 时间:2024/06/07 08:33
具体思路如下:
给定两个序列,一个是入栈的序列in,一个是出栈的序列out.
1.定义一个栈。
2.当栈为空时或栈顶元素不等于out[ j ]中的元素时,将in中元素入栈
3.当栈顶元素等于out[ j ]中元素时,出栈
4.入栈出栈操作后,栈中的元素全出来了,则是合法的。
反之,则是非法的。
例如:
入栈的序列(1,2,3,4,5),出栈序列为 (4,5,3,2,1)是合法序列,
入栈的序列(1,2,3,4,5),出栈序列为(1,5,3,2,4)是不合法序列
#include<iostream>#include <stack>using namespace std;int is_legal(int in[],int out[],int size){ stack<int> s; int i=0;//index of in int j=0;//index of out while(j<size) { while(s.empty() || s.top()!=out[j]) { if(i<size) s.push(in[i++]); else break; } if(s.top()==out[j]) { j++; s.pop(); } else break; } if(s.empty() && j==size) return 0; return -1;}int main(){ int in[]={1,2,3,4,5}; int out[]={4,5,3,2,1}; //int out[]={1,5,3,2,4}; int ret=is_legal(in,out,sizeof(in)/sizeof(in[0])); if(ret==-1) cout<<"不合法"<<endl; else cout<<"合法"<<endl; return 0;}
阅读全文
0 0
- 元素出栈入栈的合法性
- 判断元素出栈入栈顺序的合法性
- 判断元素入栈出栈的合法性
- 判断元素入栈出栈的合法性
- 面试题(判断元素出栈入栈顺序的合法性。)
- 【数据结构】检查元素出栈的合法性
- 17_7_20:元素入栈出栈的合法性检测
- 元素出入栈的顺序合法性判断
- 元素的出栈、入栈顺序的合法性。
- 元素出栈、入栈顺序的合法性
- 判断元素入栈/出栈的合法性
- 元素入栈、出栈的合法性检测
- 元素出栈、入栈顺序的合法性
- 判断元素出栈,入栈顺序的合法性
- 判断元素入栈,出栈顺序的合法性
- ~元素出栈、入栈顺序的合法性~
- 元素出栈、入栈顺序的合法性。
- 元素出栈、入栈顺序的合法性
- Spring MVC文件上传
- 第14节-Linux支持的其他文件系统与 VFS
- 浅谈c++volatile关键字
- 管理感言_打铁还需自身硬
- 分享AndroidStudio相关的一些安装和使用的链接
- 元素出栈入栈的合法性
- (DP,最长上升子序列变形)Monkey and Banana--HDOJ
- 接口测试-py-post
- selenium 错误集锦->f.QueryInterface is not a function
- vs2013中定义的全局变量count在使用时提示:“不明确的符号”
- Linux学习笔记--初识
- 用 线性回归 预测股票的涨跌
- [IIOT学习]Microzed IIOT开发板连接IBM bluemix云
- String常用的构造方法