代码随想录算法训练营第十天| 232.用栈实现队列|225. 用队列实现栈|20. 有效的括号|1047. 删除字符串中的所有相邻重复项

232.用栈实现队列

文档讲解:代码随想录

视频讲解:栈的基本操作! | LeetCode:232.用栈实现队列_哔哩哔哩_bilibili

  1. 知道要用两个栈实现,具体咋做忘了。
  2. 队列的特性是先进先出,栈是先进后出,入队操作直接入栈就行,实现出队操作,入栈的第一个元素在栈最下面出来需要借助另一个栈b,先将所有元素入栈b,这样出栈的时候就是入队的第一个元素了,javascript中的栈竟然是直接用数组代替的,直接就可以进行pop操作和push操作。实现了pop函数在实现peek操作的时候可以直接调用pop来简化代码这个编程习惯真好。
  3. 不知道栈如何实现。
  4. 用了一个小时左右。

225. 用队列实现栈

文档讲解:代码随想录

视频讲解:队列的基本操作! | LeetCode:225. 用队列实现栈_哔哩哔哩_bilibili

  1. 模模糊糊知道要用两个队列来实现,具体咋做忘了。
  2. 用一个队列也可以实现栈,比如栈是先进后出,在一个队列里这个元素要出来必须等前面的元素出来才可以,可以让这个元素之前的元素出队再入队,这样就可以达到出栈元素的目的。
  3. javascript中队列竟然也是用数组实现的,出队元素是通过执行数组的shift方法达到获取移除第一个元素的作用。
  4. 用了一个小时左右。 

20. 有效的括号

文档讲解:代码随想录

视频讲解:栈的拿手好戏!| LeetCode:20. 有效的括号_哔哩哔哩_bilibili

  1. 有栈的代码了这个题感觉ok。
  2. /
  3. 需要建立左符号和右符号的关系,遇到右符号不是比较出栈元素和这个元素是否相等,而是判断这两个符号是否配对;遍历完字符串后,栈是否为空都有返回值。
  4. 用了半个小时左右。 

1047. 删除字符串中的所有相邻重复项

文档讲解:代码随想录

视频讲解:栈的好戏还要继续!| LeetCode:1047. 删除字符串中的所有相邻重复项_哔哩哔哩_bilibili

  1. 先想到用双指针,没做出来。
  2. 原来用栈这么简单,结果就藏在栈里面的内容中,遍历一个新元素就检查栈顶是否和这个新元素相同,相同就出栈,不相同就入栈,将栈中的结果反转一下就是满足题意的结果。
  3. 这个题用之前写过的类定义的栈会超时间,感觉可能和最后反转拼接操作有关,不知道具体啥原因,最后用了一个数组来实现存放元素,移除元素的逻辑,最后时间复杂度降低了。
  4. 用了一个小时左右。​​​​​​​ 

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值