關(guān)于阿里的一道面試題耗跛,如果abcdef順序入棧裕照,那么下面不可能出現(xiàn)的出棧順序是:
A:fedcba
B:dcbaef // abcd入棧,dcba依次出棧调塌,e入棧牍氛,e出棧,f入棧烟阐,
C:edcbaf // abcde入棧搬俊,edcba依次出棧紊扬,f入棧,f出棧
D:dbcaef
對于這樣的題唉擂,也不是無規(guī)律可循餐屎,主要就是滿足三個條件:
1、在原序列中相對位置比它小的玩祟,必須是逆序腹缩;
2、在原序列中相對位置比它大的空扎,順序沒有要求藏鹊;
3、以上兩點可以間插進行转锈。
這三個條件咋一看盘寡,比較蒙,那么我們就舉例來看:
第一個選項
當f第一個出棧時撮慨,在原序列中相對位置比它小的竿痰,是abcde,他們在這個f之后的出棧中是否是abcde相反的呢砌溺?edcba滿足條件
當e第二個出棧影涉,在原序列中相對位置比它小的,是abcd规伐,他們在e出棧之后的出棧中是否是abcd相反的呢蟹倾?dcba滿足條件
當d第三個出棧,在原序列中相對位置比它小的猖闪,是abc喊式,他們在d出棧之后的出棧中是否是abc相反的呢?cba滿足條件
……
第二個選項
當d第一個出棧萧朝,在原序列中相對位置比它小的是abc握侧,abc三個元素在d出棧之后的出棧中是否是相反排序的呢掷伙?cba滿足
當c第二個出棧,在原序列中相對位置比它小的是ab茴恰,ab二個元素在c出棧之后的出棧中是否是相反排序的呢竖配?ba滿足
當b第三個出棧何址,在原序列中相對位置比它小的是a,a一個元素在b出棧之后的出棧中是否是相反排序的呢进胯?a滿足
當a第四個出棧用爪,在原序列中沒有比a更小的啦,所以滿足條件胁镐。
當e第五個出棧偎血,在原序列中相對位置比它小的是abcd诸衔,abcd四個元素在d出棧之后的出棧中是否是相反排序的呢?由于e之后只有f颇玷,因此滿足條件
第三個選項
當e第一個出棧笨农,在原序列中相對位置比它小的是abcd,abcd四個元素在e出棧之后的出棧中是否是相反排序的呢帖渠?dcba滿足
當d第二個出棧谒亦,在原序列中相對位置比它小的是abc,abc三個元素在d出棧之后的出棧中是否是相反排序的呢空郊?cba滿足
當c第三個出棧份招,在原序列中相對位置比它小的是ba,ba二個元素在c出棧之后的出棧中是否是相反排序的呢狞甚?ba滿足
當b第四個出棧锁摔,在原序列中相對位置比它小的是a,a一個元素在b出棧之后的出棧中是否是相反排序的呢入愧?a滿足
當a第五個出棧鄙漏,在原序列中沒有比a更小的了,所以滿足條件
第四個選項
當d第一個出棧棺蛛,在原序列中相對位置比它小的是abc怔蚌,abc三個元素在b出棧之后的出棧中是否是相反排序的呢?bca不滿足