栈的运用题目,注意最后要清空栈,否则会WA
代码:
#include<iostream>
#include<vector>
#include<string>
#include<stack>
using namespace std;
int main(){
int n,i,j;
char in[100],out[100];
stack<char> s;
vector<string> steps;
while(cin>>n>>in>>out){
i=j=0;
while(i<n){
s.push(in[i++]);
steps.push_back("in");
while(!s.empty()){
if(s.top()==out[j]&&j<=n){
s.pop();
steps.push_back("out");
j++;
}
else
break;
}
}
if(s.empty()){
cout<<"Yes."<<endl;
for(i=0;i<steps.size();i++)
cout<<steps[i]<<endl;
cout<<"FINISH"<<endl;
}
else
cout<<"No."<<endl<<"FINISH"<<endl;
steps.clear();
for(i=s.size();i>0;i--)
s.pop();
}
return 0;
}
本文介绍了一道关于栈操作的经典编程题目,通过模拟输入输出过程,实现字符串匹配,并确保栈最终为空以验证算法正确性。文章提供了完整的C++代码实现,展示了如何利用栈进行有效的数据处理。
840

被折叠的 条评论
为什么被折叠?



