輸入兩個整數序列,第一個序串列示堆疊的壓入順序,請判斷第二個序列是否為該堆疊的彈出順序,假設壓入堆疊的所有數字均不相等,例如,序列 {1,2,3,4,5} 是某堆疊的壓堆疊序列,序列 {4,5,3,2,1} 是該壓堆疊序列對應的一個彈出序列,但 {4,3,5,1,2} 就不可能是該壓堆疊序列的彈出序列,
示例 1:
輸入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]
輸出:true
解釋:我們可以按以下順序執行:
push(1), push(2), push(3), push(4), pop() -> 4,
push(5), pop() -> 5, pop() -> 3, pop() -> 2, pop() -> 1
示例 2:
輸入:pushed = [1,2,3,4,5], popped = [4,3,5,1,2]
輸出:false
解釋:1 不能在 2 之前彈出,
提示:
0 <= pushed.length == popped.length <= 1000
0 <= pushed[i], popped[i] < 1000
pushed 是 popped 的排列,
來源:力扣(LeetCode)
鏈接:https://leetcode.cn/problems/zhan-de-ya-ru-dan-chu-xu-lie-lcof
著作權歸領扣網路所有,商業轉載請聯系官方授權,非商業轉載請注明出處,
點擊查看代碼
func validateStackSequences(pushed []int, popped []int) bool {
stack :=[]int{}
i := 0
for _, x := range(pushed) {
stack = append(stack, x)
for len(stack) > 0 && stack[len(stack)-1] == popped[i]{
stack = stack[:len(stack)-1]
i++
}
}
return len(stack) == 0
}
本文來自博客園,作者:slowlydance2me,轉載請注明原文鏈接:https://www.cnblogs.com/slowlydance2me/p/17318549.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/550101.html
標籤:其他
