- 题意
给出两个字符串序列,长度都为n,求解能否利用栈把第一个序列转换成第二个序列。 - 解答
import java.util.Arrays;
import java.util.Scanner;
import java.util.Stack;
public class P1022 {
public static void main(String[] args) {
new P1022().run();
}
public void run(){
Scanner scanner = new Scanner(System.in);
int n;
String s1, s2;
int[] flag = new int[50];
Arrays.fill(flag, 0);
Stack<Character> stack = new Stack<>();
while(scanner.hasNext()) {
n = scanner.nextInt();
s1 = scanner.next();
s2 = scanner.next();
stack.clear();
int j = 0, k =0;
for (int i = 0; i < n; i++) {
stack.push(s1.charAt(i));
flag[k++] = 1;
while(!stack.isEmpty() && stack.peek() == s2.charAt(j)){
flag[k++] = 0;
stack.pop();
j++;
}
}
if(j == n){
System.out.println("Yes.");
for (int i = 0; i < k; i++) {
if(flag[i] == 1)
System.out.println("in");
else {
System.out.println("out");
}
}
}else{
System.out.println("No.");
}
System.out.println("FINISH");
}
scanner.close();
}
}
提交到OJ上的时候,注意将类名改为Main。