1. 程式人生 > >ABCDE 入棧,不可能的出棧次序是……

ABCDE 入棧,不可能的出棧次序是……

ABCDE 入棧,不可能的出棧次序是?

如果要列出所有可能的次序再去判斷不可能的次序是一件成本非常高的事情。

所以這裡面一定是有規律的。

試想,如果A是要在第一個出棧要怎麼做:那定是A入棧,下一步就得立即出棧;如果B是要在第一齣棧怎麼做,那定是AB一起入棧後立即把B出棧。

所以規律是:答案中出棧的第一個元素是在原來的次序中是第幾個,那麼他的前面的元素必然都還在棧中。

EDCBA是可能的,因為E在第一個,E是原序列中的最後一個,那ABCD必在棧中只能按棧規則出,即DCBA

DCEAB的順序是不可能的,因為如果D是首個,那麼ABC必在棧中,無論E在什麼時候入棧和出棧,D之後的出棧順序必有CBA

的大致順序,可見不會出現這種順序。