我有点没有理解题目的意思。。
按我目前的理解:
如果输入已经排好序了,0个栈直接输出即可。
如果输入形如:(3,2,1)(5,4)(8,7,6)(9,10,11)(14,13,12),即输入可以被分为许多组。每个组内要么正序要么逆序。即:如果某个组之前的所有组包含1-n,且这个组的长度是k,则这个组形如:(n+1,n+2,...n+k)或(n+k,n+k-1,...n+1)。此时用1个栈。
任何其他情况用两个栈:全部倒进一个栈,然后依次从栈1倒进栈2,再从栈2倒进栈1。每次遇到想要的数,就pop一下。