出栈顺序判断

话不多说,上代码
例如:输入 12345  32145 输出yes
 

#include<iostream> #include<stack> using namespace std; bool islegal(char a[],char b[]) { stack<char> s; int sa,sb; sa=strlen(a); sb=strlen(b); if(sa!=sb) return false; for(int i=0,j=0;i<sa;i++) { if(a[i]!=b[j]) { s.push(a[i]); } else { j++; while(!s.empty()&&s.top()==b[j]) { s.pop(); j++; } } } if(s.empty()&&j==sa) return true; else return false; } int main() { int sign=0; char a[100];//优先级 char b[100];//需判断的序列 cin>>a; cin>>b; if(islegal(a,b)) cout<<"yes"<<endl; else cout<<"no"<<endl; return 0; }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值