HDU1022 堆栈模拟
来源:互联网 发布:python 打印对象 编辑:程序博客网 时间:2024/06/04 00:58
传送门::: http://acm.hdu.edu.cn/showproblem.php?pid=1022
简单的模拟....+stl 水过
不过方法很挫啊.
#include <iostream>#include <stack>#include <algorithm>#include <string>using namespace std;int main(){char str1[15],str2[15];int n,i,k;while(~scanf("%d %s%s",&n,str1,str2)){stack<char> s;i=k=0;bool flag=false;while(true){if(s.empty()&&k!=n){s.push(str1[i]);}else if(str2[k]!=s.top()){i++;s.push(str1[i]);}else if(str2[k]==s.top()){k++;s.pop();if(s.empty())i++;}if(i==n&&k!=n){flag=true;break;}if(s.empty()&&k==n)break;}if(flag)cout<<"No."<<endl<<"FINISH"<<endl;else{cout<<"Yes."<<endl;i=k=0;while(true){if(s.empty()&&k!=(strlen(str2))){s.push(str1[i]);cout<<"in"<<endl;}else if(str2[k]!=s.top()){i++;s.push(str1[i]);cout<<"in"<<endl;}else if(str2[k]==s.top()){k++;s.pop();cout<<"out"<<endl;if(s.empty())i++;}if(s.empty()&&k==strlen(str2))break;}cout<<"FINISH"<<endl;}}return 0;}
不甘心啊,又写了一个优化版的 0MS过(上面是15MS过)
#include <iostream>#include <stack>#include <algorithm>#include <string>using namespace std;int main(){char str1[15],str2[15];int ans[15];int n,i,k,h;while(~scanf("%d %s%s",&n,str1,str2)){stack<char> s;i=k=h=0;bool flag=false;for(i=0;i<15;i++)ans[i]=0;i=0;while(true){if(s.empty()&&k!=n){s.push(str1[i]);ans[h]=1;h++;}else if(str2[k]!=s.top()){i++;s.push(str1[i]);ans[h]=1;h++;}else if(str2[k]==s.top()){k++;s.pop();h++;if(s.empty())i++;}if(i==n&&k!=n){flag=true;break;}if(s.empty()&&k==n)break;}if(flag)cout<<"No."<<endl<<"FINISH"<<endl;else{cout<<"Yes."<<endl;i=0;for(i=0;i<h;i++){if(!ans[i])cout<<"out"<<endl;else cout<<"in"<<endl;}cout<<"FINISH"<<endl;}}return 0;}
- HDU1022 堆栈模拟
- HDU1022(堆栈应用)
- hdu1022
- HDU1022
- hdu1022
- HDU1022
- hdu1022
- hdu1022
- hdu1022
- HDU1022
- hdu1022
- HDU1022
- hdu1022
- HDU1022
- HDU1022
- hdu1022 栈的模拟(Train Problem I)
- HDU1022 - Train Problem I (模拟)
- HDU1022 Train Problem I【堆栈+STL+水题】
- jsp中重定向、请求分派中的绝对路径与相对路径!
- 协同过滤算法的问题及解决方案
- U盘故障详细维修方法
- 协同过滤入门文章
- OTA和apk包签名
- HDU1022 堆栈模拟
- Linux入门:定制“资源管理器”样式
- mysql的表级锁
- 应聘时最漂亮的回答
- 解析oracle的rownum
- 判断两个数组中是否存在相同的数字
- 如何 在多层acitivity中实现跳转并finish()之前所有的Activity
- WCF初接触实作——服务的发布和使用(三)
- Spring源代码的组织结构