91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

golang刷leetcode技巧之如何實現棧的壓入、彈出序列

發布時間:2021-12-16 09:22:15 來源:億速云 閱讀:151 作者:小新 欄目:大數據

小編給大家分享一下golang刷leetcode技巧之如何實現棧的壓入、彈出序列,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如,序列 {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 的排列。

解題思路

1,本題主要考察入棧出棧的理解

2,golang slice可以很容易實現棧

3,每次pushed入棧后popped 進行比較

4,如果棧非空,且poped的當前元素和棧頂元素相等,則出棧,同時右移popped指針

代碼實現

func validateStackSequences(pushed []int, popped []int) bool {    var s stack    j:=0    for i:=0;i<len(pushed);i++{        s.push(pushed[i])         for !s.empty() && s.top()==popped[j]{             s.pop()             j++            //if j<len(popped){            // fmt.Println("inner:",s.data,i,j,popped[j],s.top())            //}         }         //if j<len(popped){         //fmt.Println(s.data,i,j,popped[j])         //}    }    return s.empty() && j==len(popped)}
type stack struct{    data []int}
func (s *stack )push(v int){   s.data=append(s.data,v)}
func (s *stack)pop()int{   v:=s.data[len(s.data)-1]   s.data=s.data[:len(s.data)-1]   return v}
func(s*stack)top()int{    return s.data[len(s.data)-1]}
func (s*stack)empty()bool{    return len(s.data)==0}

看完了這篇文章,相信你對“golang刷leetcode技巧之如何實現棧的壓入、彈出序列”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

遵化市| 即墨市| 墨玉县| 开化县| 张家界市| 淮滨县| 调兵山市| 汉沽区| 菏泽市| 东乡族自治县| 邛崃市| 抚顺县| 普定县| 鄂州市| 宜兰县| 靖江市| 雷州市| 广东省| 宜宾市| 罗平县| 康马县| 青川县| 民县| 漳浦县| 博爱县| 龙岩市| SHOW| 鄂州市| 香港| 高陵县| 镇江市| 巴彦淖尔市| 威宁| 沂源县| 潼关县| 德兴市| 纳雍县| 三原县| 新巴尔虎左旗| 达孜县| 成安县|