这个问题主要考虑的其实就是普通的栈操作问题。就是看看能不能完全出栈。现在用java实现,一次AC(^_^)
mport java.util.ArrayList;
import java.util.Queue;
import java.util.Scanner;
import java.util.Stack;
public class HDU1022 {
public static void main(String[] args){
Scanner cin = new Scanner(System.in);
while(cin.hasNext()){
int train = cin.nextInt();
String O1s = cin.next();
String O2s = cin.next();
char[] O1 = O1s.toCharArray();
char[] O2 = O2s.toCharArray();
Stack<Character> trainStation = new Stack<>();
ArrayList<String> ans = new ArrayList<>();
int tar1 = 0;
int tar2 = 0;
trainStation.push(O1[tar1]);
ans.add("in");
tar1++;
while (tar2 < O2.length){
if (trainStation.empty()){
trainStation.push(O1[tar1]);
tar1++;
ans.add("in");
}
if (trainStation.peek().equals(O2[tar2])){
tar2++;
trainStation.pop();
ans.add("out");
}else {
if (tar1 < O1.length){
trainStation.push(O1[tar1]);
tar1++;
ans.add("in");
}else {
break;
}
}
}
if (trainStation.empty()){
System.out.println("Yes.");
for (int i=0;i<ans.size();i++){
System.out.println(ans.get(i));
}
System.out.println("FINISH");
}else {
System.out.println("No.");
System.out.println("FINISH");
}
}
}
}