判断出栈队列的正确与否
来源:互联网 发布:淘宝店铺名字设计软件 编辑:程序博客网 时间:2024/04/30 05:59
告诉你一个入栈队列和一个出栈队列,当然这一个队列里边不容许出现一样的数,判断这个出栈队列是不是合理的出站队列。。。
比如说告诉你一个入栈队列,1 2 3 4 5 6,当然这个不一定是这样单调递增的,还告诉你一个出站队列1 2 5 6 4 3,结果是yes,
但是如果告诉的入栈队列是1 2 3 4 5 6,出站队列是4 3 6 1 2 5那是不可能有这样的出站队列的,所以输出no。
#include<iostream>
#include<stack>
#include<cstdio>
using namespace std;
bool solve(int a[],int b[],int n){
//a数组是出栈队列,b数组是入栈队列,n是a和b的数组大小
int ok=false;
if(!n)return ok;
int i=0,j=0;
stack<int> s;
while(j<n){
while(i<n&&b[i]!=a[j]){
s.push(b[i]);i++;
}
i++;j++;
while(!s.empty()&&j<n){
int top = 0;
top=s.top();
s.pop();
if (top == a[j]) {
j++;
} else {
s.push(top);
break;
}
}
if(i>=n&&s.empty()){ok=true;return ok;}
}
// while(i<n){//猪似的这部分是只适用于b数组(入栈队列)是单调递增的,这个是自己写的!!!
// while(j<n&&a[i]>b[j]){
// s.push(b[j]);
// j++;
// }
// if(a[i]>b[j])return false;
// while(a[i]==b[j]&&j<n){i++;j++;}
// if(j==n){
// if(i<n)
// {
// while(!s.empty()){
// int t=s.top();
// if(t!=a[i++])return false;
// s.pop();
// }
// return true;
// }
// else{
// if(!s.empty())return false;
// else return true;
// }
// }
// if(a[i]<b[j])
// {
// if(!s.empty())
// {
// int t=s.top();
// if(t!=a[i])return false;
// s.pop();
// i++;
// }
// else return false;
// }
// }
// if(j<n)return false;
// if(!s.empty())return false;
return ok;
}
int a[1010],b[1010],n;
int main(){
while(~scanf("%d",&n))
{
for(int i=0;i<n;i++)scanf("%d",&a[i]);
for(int i=0;i<n;i++)b[i]=i+1;
if(solve(a,b,n)) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
}
- 判断出栈队列的正确与否
- 根据入栈顺序判断出栈序列正确与否
- 判断email格式正确与否
- iOS身份证号码正确与否判断
- js判断 yyy-mm-dd的时间格式正确与否,
- 如何实现验证码输入正确与否的判断?
- 判断栈的出栈顺序是否正确
- 判断序列是否为正确的出栈序列
- ajax+asp判断邮箱地址正确与否
- java判断出栈顺序是否正确
- 判断出栈序列是否正确
- 判断出栈顺序是否正确
- 判断出栈顺序是否正确
- 如何判断出栈顺序是否正确?
- 判断出栈序列是否正确
- 18.判断出栈顺序是否正确?
- 判断出栈顺序是否正确
- 【栈队列】判断出栈顺序的合法性
- CSS知识归纳—4
- 一天一篇批处理之——Part7: 批量修改文件名称以及批量创建文件
- JAVA面试之AOP与IOC解析
- MATLAB数组乘法
- linux下进程间的通信——有名管道fifo学习笔记
- 判断出栈队列的正确与否
- bzoj 1296 【粉刷匠】
- 9.Cent OS 服务器安装Laravel项目权限问题
- <<重构改善既有的代码设计>>第2章
- 笔试笔记————乱序同构
- JMS消息传送机制ActiveMQ
- 在VS2010中基于对话框显示彩色和深度图并匹配骨骼图
- canvas的一些小知识点
- oracle initialization or shutdown in progress解决方法