如何打印所有可能的push和pop操作混合序列



假设在后进先出堆栈上执行push和pop操作的混合序列。如何打印所有可能的序列?我可以判断它是关于递归的。例如,如果给定顺序1 2 3,输出为

1 2 3
1 3 2
2 1 3
2 3 1
3 2 1

使用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)

最新更新