輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如,序列 是某棧的壓棧序列,序列 是該壓棧序列對應的乙個彈出序列,但 就不可能是該壓棧序列的彈出序列。
這個比較簡單,只需要模擬棧的操作就i可以得到結果!出錯點在粗心,if not 的操作忘了把後面的情況也加上not
判斷 len(poped) == b
或者是 len(a) == 0都可以。
break 是結束當前迴圈,只是當前層,不包括外層迴圈;continue是當前迴圈繼續進行,此迴圈的後續部分不再進行;
return是結束此函式。
class
solution
(object):
defvalidatestacksequences
(self, pushed, popped)
:"""
:type pushed: list[int]
:type popped: list[int]
:rtype: bool
"""ifnot popped or
not pushed:
return
true
a =b =
0for i in pushed:
while a[-1
]== popped[b]
: a.pop(
) b +=1if
len(a)==0
:break
iflen
(a)==0:
return
true
else
:return
false
棧的壓入彈出序列
題目 輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列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就不可能是該壓棧序列的彈出序列。bool ispoporder cons...
棧的壓入彈出序列
1.問題描述 輸入兩個整數序列,第乙個序列表示棧的壓入序列,請判斷第二個序列是否為該棧的彈出序列。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓棧序列,序列4,5,3,2,1是該棧序列對應的乙個彈出序列,但 4,3,5,1,2,就不可能是該壓棧序列的彈出序列。來自 劍指offer...