【华为机试077】火车出站

题目描述:

给定一个正整数N代表火车数量,0

Java实现:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
import java.util.Stack;
  
public class Main {
    static Stack s1=new Stack();
    static Stack s2=new Stack();
    static List list=new ArrayList();
    public static void pp(String m){
          while(s1.isEmpty()&&s2.isEmpty()){
              list.add(m.trim());
              return ;
          }
          if(!s2.isEmpty()){
              String mm=s2.pop();
              pp(m+" "+mm);
              s2.push(mm);
          }
          if(!s1.isEmpty()){
              String mm=s1.pop();
              s2.push(mm);
              pp(m);
              s2.pop();
              s1.add(mm);
          }
            
          
          
    }
public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    while(sc.hasNext()){
        int N=Integer.parseInt(sc.nextLine());
        String s11=sc.nextLine();
        String a[]=s11.split(" ");
        for(int i=a.length-1;i>=0;i--){
            s1.push(a[i]);
        }
        pp("");
        Collections.sort(list);
        for(String h:list)
            System.out.println(h);
    }
}
}

知识点:

  • 火车出站==火车出栈,给出入栈顺序,得出所有可能的出栈顺序

你可能感兴趣的:(华为机试题集Java实现)