亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

枣阳市| 临高县| 松滋市| 贞丰县| 马鞍山市| 兴隆县| 阳西县| 邵阳市| 新和县| 平乡县| 和林格尔县| 三原县| 长沙县| 康马县| 马关县| 武穴市| 重庆市| 泾阳县| 曲麻莱县| 旺苍县| 沧州市| 乾安县| 孝义市| 长沙市| 新泰市| 策勒县| 民乐县| 浦江县| 额尔古纳市| 华容县| 贡觉县| 蒲江县| 清远市| 龙海市| 神池县| 巧家县| 常德市| 营口市| 通江县| 海盐县| 新密市|