HUD1022 Train Problem I

来源:互联网 发布:最优化理论的求解软件 编辑:程序博客网 时间:2024/06/05 05:27
  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。

0 0
原创粉丝点击