劍指Offer 20 棧的壓入 彈出順序

2021-10-04 22:01:18 字數 588 閱讀 6893

題目描述

輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否可能為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的乙個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出序列。(注意:這兩個序列的長度是相等的)

劍指offer思路:

利用輔助棧,一般棧的程式設計題目好像都要用到輔助棧。先按原棧進行壓入輔助棧,直到棧頂元素是彈出順序的第乙個元素,停止壓入,彈出棧頂,接下來彈第二個元素,如果剛好是棧頂,直接彈,不是棧頂,去原棧找來壓入,直至最後輔助棧為空的話說明彈出序列是原棧的一種彈出方式。

class

solution

for(

int i=

0,j=

0;isize()

;i++)}

return stackdata.

empty()

;}private

: stack<

int> stackdata;

};

劍指offer 棧的壓入 彈出序列

輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的乙個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出序列。分析 用乙個輔助棧模擬壓入彈出操作,...

劍指offer 棧的壓入 彈出序列

題目 輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的乙個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出序列。思路 解決這個問題很直觀地想法...

劍指offer 棧的壓入 彈出序列

題目 輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的乙個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出序列。注意 這兩個序列的長度是相等的...