golang中的栈(LeetCode刷题)
生活随笔
收集整理的這篇文章主要介紹了
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刷题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最后的99天剧情介绍
- 下一篇: 739. 每日温度 golang (li