Train Problem ITrain Problem I
思路:我们很容易想到用一个栈就可以解决~~
然后还要用字符型的不定数组来存火车的标号;不能用整数型的,具体为什么自己想一想就明白了
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
char c;
while(~scanf("%d",&n)){
vector<char> one;
vector<char> two;
vector<char> three;
///存0,1 1代表进
for(int i =0;i<n;i++){
cin >> c;
one.push_back(c);
}
for(int i =0;i<n;i++){
cin >> c;
two.push_back(c);
}
stack<char> st;
int t = 0;
int flag = 0;
for(int i=0;i<n;i++){
///判断间断入栈的过程
while(st.empty() || st.top()!= two[i]){
if(t<n){
three.push_back(1);
st.push(one[t++]);
}
else{
flag = 1;
break;
}
}
if(st.top()==two[i]){
three.push_back(0);
st.pop();
}
}
if(flag)
cout << "No." << endl;
else{
cout << "Yes." <<endl;
for(int i = 0;i<2*n;i++){
if(three[i])
cout << "in" << endl;
else
cout << "out" << endl;
}
}
cout << "FINISH" <<endl;
}
return 0;
}