标签:
http://acm.split.hdu.edu.cn/showproblem.php?pid=1022
题意:给出火车的进站与出站顺序,判断是否可以按照给出的出站顺序出站。
#include <iostream> #include <stdio.h> #include <string.h> #include <string> #include <vector> #include <algorithm> #include <map> #include <queue> #include <stack> #include <math.h> using namespace std; #define INF 0x3f3f3f3f const int maxn = 600; typedef long long LL; int main() { int n; int result[100]; char str1[100], str2[100]; while(scanf("%d%s%s", &n, str1, str2)!=EOF) { memset(result, 0, sizeof(result)); stack<char>Q; Q.push(str1[0]); result[0] = 1; int i=0; int j=0; int k=1; while(i<n && j<n) { if(Q.size() && Q.top()==str2[j]) { j++; Q.pop(); result[k++]=0; } else { if(i==n) break; Q.push(str1[++i]); result[k++]=1; } } if(i==n) printf("No.\n"); else { printf("Yes.\n"); for(int i=0;i<k;i++) if(result[i]) printf("in\n"); else printf("out\n"); } printf("FINISH\n"); } return 0; } /* 1 1 1 */
标签:
原文地址:http://www.cnblogs.com/daydayupacm/p/5789016.html