面試22 棧的壓入 彈出

2021-10-10 17:38:19 字數 889 閱讀 8959

題目:

輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如,序列 是某棧的壓棧序列,序列 是該壓棧序列對應的乙個彈出序列,但 就不可能是該壓棧序列的彈出序列。

樣例1:

輸入:pushed =[1

,2,3

,4,5

], popped =[4

,5,3

,2,1

]輸出:true

解釋:我們可以按以下順序執行:

push(1

),push(2

),push(3

),push(4

),pop()-

>4,

push(5

),pop()-

>5,

pop()-

>3,

pop()-

>2,

pop()-

>

1

樣例2:

輸入:pushed =[1

,2,3

,4,5

], popped =[4

,3,5

,1,2

]輸出:false

解釋:1 不能在 2 之前彈出

方法:

使用模擬的思路,首先將入棧序列一次入棧,然後將當前棧頂元素與出棧序列的當前元素進行比較。如果相同,就出棧當前元素,並且將出棧序列後移乙個元素位置。當所有的元素入棧之後,判斷棧中是否還有元素,如果有說明出棧序列不合法。沒有則合法。

class

solution

}return st.

empty()

;}};

22 棧的壓入 彈出序列

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

棧的壓入 彈出序列 22

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

面試題22 棧的壓入彈出序列

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