HUD1022 Train Problem I

  1. 題意
    給出兩個字符串序列,長度都爲n,求解能否利用棧把第一個序列轉換成第二個序列。
  2. 解答
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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章