栈的模拟(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刷题)相关推荐

  1. ​LeetCode刷题实战354:俄罗斯套娃信封问题

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  2. ​LeetCode刷题实战355:设计推特

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  3. ​LeetCode刷题实战631:设计 Excel 求和公式

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  4. Leetcode刷题 225题:用队列实现栈(基于Java和c++两种语言)

    ** Leetcode刷题 225题:用队列实现栈(基于Java和c++两种语言) ** 题目: 使用队列实现栈的下列操作: push(x) – 元素 x 入栈 pop() – 移除栈顶元素 top( ...

  5. Leetcode刷题 232题:用栈实现队列(基于python3和c++两种语言)

    Leetcode刷题 232题:用栈实现队列(基于python3和c++两种语言) 题目: 使用栈实现队列的下列操作: push(x) – 将一个元素放入队列的尾部. pop() – 从队列首部移除元 ...

  6. Leetcode刷题 155题: 最小栈(基于python3和c++两种语言)

    ** Leetcode刷题 155题: 最小栈(基于python3和c++两种语言) ** ** 题目: ** 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈. ...

  7. Leetcode刷题 1441题: 用栈操作构建数组(基于python3和c++两种语言)

    Leetcode刷题 1441题: 用栈操作构建数组(基于python3和c++两种语言) ** 题目: ** 给你一个目标数组 target 和一个整数 n.每次迭代,需要从 list = {1,2 ...

  8. C#LeetCode刷题-栈

    栈篇 # 题名 刷题 通过率 难度 20 有效的括号 C#LeetCode刷题之#20-有效的括号(Valid Parentheses) 33.0% 简单 42 接雨水 35.6% 困难 71 简化路 ...

  9. Leetcode刷题——栈与队列

    Leetcode刷题--栈与队列 一.栈与队列定义 二.Leetcode题目 1.用栈实现队列 2.用队列实现栈 一.栈与队列定义 栈:先进后出,栈提供push 和 pop 等等接口,所有元素必须符合 ...

最新文章

  1. Windows10 中使用 virtualbox 安装ubuntu 虚拟机
  2. 专用ADC与群集软件之比较
  3. 微软Adam挑战Google Brain:我的机器学习比你快
  4. weekly paper read
  5. Asp.net MVC, 谁吃了我的id参数值?
  6. Windows系统安全模式妙用全接触
  7. python实现根据文件名找出(拷贝/剪切)同名文件的不同类型文件
  8. 计算机 函数的应用,职称计算机:公式与函数的应用(2)
  9. android 数字圆环,Android 自定义数字圆环
  10. Maven - 构建与命令
  11. leetcode162. Find Peak Element
  12. 做前端工程师,就业方向有哪些?你知道吗
  13. 前端后台的爱恨情仇——接口调试
  14. SQL语句 获取系统日期
  15. 实验一:marlab安装调试
  16. 保护眼睛——设置WIN7和XP 窗体、Chrome、IE网页背景颜色(zz)
  17. LEGION: Visually compare modeling techniques for regression
  18. 云起实验室:零基础入门Serverless:一键部署红白机小游戏
  19. Java 在线编程编译工具上线,直接运行Java代码
  20. 计算机专业海报加文字,巧用字体做海报之——字图穿插

热门文章

  1. 一些关于Viewport与device-width的东西~(转)
  2. html5 图片上传 预览
  3. 从0开始接触html--第一天学习内容总结
  4. thinkphp 在接口开发或者接入三方时解决跨域
  5. Linux虚机安装配置Tomcat
  6. 软件测试白皮书-等价类
  7. hello程序的运行过程-从计算机系统角度
  8. Business Component(BC)和Business Object(BO)
  9. linux常用命令-压缩解压命令
  10. nginx资源定向 css js路径问题