import java.util.*;// 注意类名必须为 Main, 不要有任何 package xxx 信息public class Main {static List<String> allPopStack = new ArrayList<>();public static void main(String[] args) {    Scanner in = new Scanner(System.in);    // 注意 hasNext 和 hasNextLine 的区别    while (in.hasNextLine()) { // 注意 while 处理多个 case        String a = in.nextLine();        char[] waStack = a.toCharArray();        LinkedList<Character> characters = new LinkedList<>();        for (int i = 0; i < waStack.length; i++) {            characters.add(waStack[i]);        }        visitStack(characters, new Stack<Character>(), new LinkedList<Character>(),                   waStack.length);        Collections.sort(allPopStack);        for (String s : allPopStack) {            System.out.println(s);        }    }}public static void visitStack(LinkedList<Character> insert,                              Stack<Character> stack, LinkedList<Character> record, int size) {    //栈已经全部入完    if (record.size() == size) {        //已经全部记录        StringBuilder builder = new StringBuilder();        for (Character character : record) {            builder.append(character);        }        allPopStack.add(builder.toString());        return;    }    //入栈, 还有数据可以入栈的时候,才能    if (insert.size() > 0) {        Character character = insert.pollFirst();        stack.push(character);        visitStack(insert, stack, record, size);        // 恢复原貌        insert.addFirst(character);        //还回去        stack.pop();    }    //出栈    if (stack.size() > 0) {        Character pop = stack.pop();        record.add(pop);        visitStack(insert, stack, record, size);        stack.push(pop);        record.removeLast();    }}}
点赞 0
评论 0
全部评论

相关推荐

今天 10:09
复旦大学 Java
点赞 评论 收藏
分享
Java面试先知:我也是和你一样的情况,hr 说等开奖就行了
点赞 评论 收藏
分享
11-27 16:41
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务