日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

golang中的栈(LeetCode刷题)

發布時間:2023/11/30 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 golang中的栈(LeetCode刷题) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

棧的模擬(LeetCode刷題用法)

func main() {stack := make([]string, 0)stack = append(stack, "1" )stack = append(stack, "2" )stack = append(stack, "3" )fmt.Println(stack)stack = stack[:len(stack)-1]fmt.Println(stack) } [1 2 3] [1 2]

以下不用閱讀

Invalid operation: i-ind (mismatched types int and interface{})

LeetCode 739實現

golang沒有設計stack類型嗎?

答案是有的!使用list(雙鏈表)的部分操作就可以達到stack操作的目的。

stack := list.New() //初始化棧 ind := stack.Remove(stack.Front()).(int) //出棧 stack.PushFront(i) //入棧 fmt.Println(stack.Front().Value)

但是為什么需要.(int)的類型斷言?給stack傳入的本來就是int類型的

// golang list源碼 type Element struct {next, prev *Elementlist *ListValue interface{} }

可以看到Value是 interface{}類型的變量。所以不進行轉換調用會報錯 會報錯因為content是interface{}類型, 而不是int類型(Invalid operation: i-ind (mismatched types int and interface{}))
通過斷言實現了類型轉換。

參考資料

https://studygolang.com/articles/4276

總結

以上是生活随笔為你收集整理的golang中的栈(LeetCode刷题)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。