劍指offer31題 棧的壓入彈出序列

2021-10-24 06:04:13 字數 664 閱讀 5898

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

是某棧的壓棧序列,序列 是該壓棧序列對應的乙個彈出序列,但

就不可能是該壓棧序列的彈出序列。

示例 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 indexpop==popped.

size()

;//判斷指標是否遍歷完成彈出序列}}

;

劍指offer 31 棧的壓入 彈出序列

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

劍指offer 31 棧的壓入 彈出序列

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

劍指Offer 31 棧的壓入 彈出序列

題目輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。leetcode中也有相同的題目 驗證棧序列 解決思路 依次將第乙個序列的元素壓入棧中 判斷這個元素是不是第二個序列中的將要pop的值 如果是則從棧中彈出此元素,將要pop的值的後移...