劍指offer 判斷出棧順序是否正確

2021-10-03 16:17:58 字數 634 閱讀 1231

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

用乙個空棧,來存放入棧的資料

# -*- coding:utf-8 -*-

class solution:

def ispoporder(self, pushv, popv):

stack =

for num in popv:

if num in pushv:

for i in range(len(pushv)):

if pushv[i] == num:

break

else:

pushv = pushv[i+1:]

else:

if len(stack)== 0:

return false

if num!=stack[-1]:

return false

else:

stack.pop()

return true

劍指Offer 出棧順序的判斷正誤

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

判斷棧的出棧順序是否正確

一般這種題都是出現在選擇題裡面的,而且元素較少,所以即使我們使用野路子 依次把選項代入測試 也不會花費多少時間。但是,我們總不能一直打游擊啊,當遇到敵人主力的時候無能為力,那就坑了。所以這裡介紹怎樣轉游擊戰為陣地戰,從正面硬剛敵人並且取勝的方法。首先,假設入棧順序是1,2,3,4 正確的出棧順序 其...

java判斷出棧順序是否正確

我們知道棧是一種先進後出的資料容器。當乙個棧的輸入序列是遞增序列 例如a,b,c,d 並且在進棧操作時,允許退棧操作,則輸出的序列可能有多種形式 例如 d,c,b,a或a,c,b,d等 但是卻肯定不會出現如下出棧序列 a,d,b,c或d,a,b,c等。在輸入序列為遞增序列的假設下,請編寫乙個演算法判...