Train Problem I(模拟栈)
生活随笔
收集整理的這篇文章主要介紹了
Train Problem I(模拟栈)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:模擬棧,試問使用2個棧,能否使得串1變為串2
思路:模擬,經典問題,注意只要相同的元素放到棧頂后就不會再移動了,只需要考慮剩下的元素,因此每次只考慮一個元素的進入方式。
#include<cstdio> #include<cmath> #include<cstring> #include<iostream> #include<algorithm> int n,pd[200005]; char s1[200005],s2[200005],s3[200005]; int main(){while (scanf("%d %s %s",&n,s1,s2)!=EOF){int t1=0,t2=0,i=1,cnt=0;s3[i]=s1[0];pd[0]=1;while (t1<n&&t2<n){if (s3[i]==s2[t2]){i--;cnt++;pd[cnt]=0;t2++;}else{s3[++i]=s1[++t1];cnt++;pd[cnt]=1;}}if (i==0){printf("Yes.\n");for (int i=0;i<=cnt;i++)if (pd[i]==0) printf("out\n");else printf("in\n");}else printf("No.\n");printf("FINISH\n");} }?
轉載于:https://www.cnblogs.com/qzqzgfy/p/5609355.html
總結
以上是生活随笔為你收集整理的Train Problem I(模拟栈)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: codeforces 356C Bear
- 下一篇: HASH暴力破解工具-Hashcat