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

2021-09-29 02:37:32 字數 519 閱讀 3411

題目

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

leetcode中也有相同的題目:驗證棧序列

解決思路

依次將第乙個序列的元素壓入棧中;

判斷這個元素是不是第二個序列中的將要pop的值;

如果是則從棧中彈出此元素,將要pop的值的後移;否則壓入第乙個序列的下乙個值,返回到第二步;

最後如果棧為空說明第乙個序列所有元素都被按序壓入並按第二個序列的順序彈出,返回true,否則返回false。

**實現

public

boolean

validatestacksequences

(int

pushed,

int[

] popped)

}// 最後如果棧為空表示兩個序列滿足條件

return s.

empty()

;}

劍指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 棧的壓入 彈出序列

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