火車問題答案
解題思路
1.如果待入椦糟澹火車和最頂目標火車相同就進行連續(xù)進棧出棧恩闻;
2.若是不相同則只是進棧就行塌衰;
3.最后利用出棧次數(shù)是否與進棧次數(shù)相同進行輸出答案豌注;
#include<string.h>
#include<stack>
using namespace std;
int main()
{
int n, i, j, k, flag[50]={0};//flag與k記錄進出,1表示進0表示出;j表示出棧次數(shù)揉忘;
char s1[15], s2[15];
stack <char> s;
while(scanf("%d %s%s",&n,s1,s2)!=EOF)
{
while(!s.empty())
s.pop(); //刪除首元素
j = k = 0;
for(i = 0; i < n; i++)
{
s.push(s1[i]);//在隊尾插入一個元素
flag[k++] = 1;
while(!s.empty() && s.top() == s2[j])
{
flag[k++] = 0;
s.pop();
j++;
}
}
if(j == n)
{
printf("Yes.\n");
for(i = 0; i < k; i++)
{
if(flag[i])
printf("in\n");
else
printf("out\n");
}
}
else
printf("No.\n");
printf("FINISH\n");
}
return 0;
}