题目描述:
给定一个正整数N代表火车数量,0<N<10,接下来输入火车入站的序列,一共N辆火车,每辆火车以数字1-9编号。要求以字典序排序输出火车出站的序列号。
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<String> s1=new Stack<String>();
static Stack<String> s2=new Stack<String>();
static List<String> list=new ArrayList<String>();
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);
}

该博客讨论了一道编程题,题目要求根据火车入站的序列,找出所有可能的火车按字典序出站的序列。提供了一个Java解决方案,重点在于将问题转化为栈的操作,并理解入栈顺序与出栈顺序之间的关系。
最低0.47元/天 解锁文章
11万+

被折叠的 条评论
为什么被折叠?



