牛客66道程式設計題 棧的壓入彈出序列

2021-10-01 02:01:42 字數 848 閱讀 9860

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

1、判斷壓入棧是否為空或者是否有其它的異常現象,若無,則執行以下步驟

2、建立乙個空棧stack,用於模擬入棧出棧操作

3、把壓入序列pushv中的數壓入到stack中,在壓入的過程中,還要判斷壓入的數和彈出序列中的第乙個數是否相等,若相等則彈出資料,否則則繼續執行步驟3。

4、當迴圈結束後,若stack為空,則說明彈出序列和壓入序列是對應的,否則不對應

class

solution

:def

ispoporder

(self, pushv, popv)

:# write code here

ifnot pushv :

return

none

stack=

for i in pushv:

while stack:

if stack[-1

]==popv[0]

:#注意這裡,是stack的最後乙個數和popv的第乙個數對比

stack.pop(

) popv.pop(0)

#彈出第乙個數

else

:break

return

true

if stack==

else

none

牛客網 棧的壓入 彈出序列

題目大意,給出兩個序列乙個代表壓入序列,乙個代表彈出序列,判斷這是否是乙個合理的彈出序列。一開始看到這個問題的時候直接想到了二叉樹的先序中序,構造後續 我也不知道我的思路為什麼這麼清奇 後來發現自己的思路歪了,然後簡單的認為只需要判斷彈出序列中,在判斷某個數是否合理時,只需要判斷在他之前彈出的數是否...

牛客之棧的壓入彈出序列

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

牛客網 棧的壓入 彈出序列

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