leetcode 面試題31棧的壓入和彈出序列

2021-10-05 18:41:34 字數 519 閱讀 3074

解題思路:新建乙個棧s來模擬這個壓入彈出的操作,依次壓入pushed序列中的每乙個元素,然後迴圈判斷當前棧頂是否和彈出序列中待彈出元素相等,相等則彈出棧頂,指向popped元素的指標指向下乙個待彈出元素,最後判斷棧s是否為空,為空則返回true,反之返回false

class

solution

:def

validatestacksequences

(self, pushed: list[

int]

, popped: list[

int])-

>

bool

: s, i =

,0for x in pushed:

while

(len

(s)and s[-1

]== popped[i]):

i +=

1 s.pop(

)return

not s

LeetCode 面試題31 棧的壓入 彈出序列

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

棧 面試題31 棧的壓入 彈出序列

我們使用乙個棧stack來模擬該操作。按照 popped 中的順序模擬一下出棧操作,如果符合則返回 true,否則返回 false。這裡用到的貪心法則是如果棧stack的棧頂元素stack.peek popped 序列中下乙個要 pop 的值,則應立刻將該值 pop 出來。最後檢查棧是否為空。cla...

LeetCode面試題 03 05 棧排序

棧排序。編寫程式,對棧進行排序使最小元素位於棧頂。最多只能使用乙個其他的臨時棧存放資料,但不得將元素複製到別的資料結構 如陣列 中。該棧支援如下操作 push pop peek 和 isempty。當棧為空時,peek 返回 1。class sortedstack public void push ...