不知道哪错了
代码如下:
#include<iostream>
#include<stack>
using namespace std;
int main()
{
int n,i,A,B,t;
while(cin>>n)
{
char a[1010],b[1010];
char temp[1010];
int flag=1;
A=0;B=0;t=0;
stack<char> s;
cin>>a>>b;
while(B<n)
{
if(a[A]==b[B])
{
temp[t++]=1;
temp[t++]=0;
A++;
B++;
}
else if(!s.empty()&&s.top()==b[B])
{
B++;
temp[t++]=0;
s.pop();
}
else if(A<n)
{
s.push(a[A]);
A++;
temp[t++]=1;
}
else
{
flag=0;
break;
}
}
if(flag==1)
{
cout<<"Yes."<<endl;
for(i=0;i<t;i++)
{
if(temp[i]==1)
cout<<"in"<<endl;
else
cout<<"out"<<endl;
}
cout<<"FINISH"<<endl;
}
else
{
cout<<"No."<<endl;
cout<<"FINISH"<<endl;
}
while(!s.empty())
s.pop();
}
return 0;
}
代码如下:
#include<iostream>
#include<stack>
using namespace std;
int main()
{
int n,i,A,B,t;
while(cin>>n)
{
char a[1010],b[1010];
char temp[1010];
int flag=1;
A=0;B=0;t=0;
stack<char> s;
cin>>a>>b;
while(B<n)
{
if(a[A]==b[B])
{
temp[t++]=1;
temp[t++]=0;
A++;
B++;
}
else if(!s.empty()&&s.top()==b[B])
{
B++;
temp[t++]=0;
s.pop();
}
else if(A<n)
{
s.push(a[A]);
A++;
temp[t++]=1;
}
else
{
flag=0;
break;
}
}
if(flag==1)
{
cout<<"Yes."<<endl;
for(i=0;i<t;i++)
{
if(temp[i]==1)
cout<<"in"<<endl;
else
cout<<"out"<<endl;
}
cout<<"FINISH"<<endl;
}
else
{
cout<<"No."<<endl;
cout<<"FINISH"<<endl;
}
while(!s.empty())
s.pop();
}
return 0;
}