輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否可能為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列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等。在輸入序列為遞增序列的假設下,請編寫乙個演算法判...