标签: java algorithm permutation
假设在LIFO堆栈上执行了混合的推送和弹出操作序列。如何打印所有可能的序列?我可以判断它是关于递归的。例如,如果给出订单 1 2 3 ,则输出为
1 2 3 1 3 2 2 1 3 2 3 1 3 2 1
答案 0 :(得分:3)
使用Google GUAVA的方法https://google.github.io/guava/releases/19.0/api/docs/com/google/common/collect/Collections2.html#orderedPermutations(java.lang.Iterable)获取所有可能的排列,然后针对每个排列使用https://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#reverse(java.util.List)