【刷题DAY11】20, 1047, 150.md

20. 有效的括号

题目链接:https://leetcode.cn/problems/valid-parentheses/

0x1 看到题目的第一想法

  • 没想法

0x2 自己实现过程中遇到哪些困难

0x3 今日学习的文章链接,或者视频链接

0x4 看完代码随想录之后的想法

  • 括号匹配
    • 考虑匹配失败的三种情况
      • 左括号多了 -> s遍历完了,栈不为空
      • 右括号多了 -> s还没遍历完,栈就空了
      • 左右括号一样多,但是左右括号不匹配 -> item和stack[-1]不相等
    • 遍历s,如果是左括号就将相应的右括号加入栈中;否则考虑情况2 3
    • 考虑情况3,返回True还是False

0x5 今日收获,记录一下自己的学习时长

  • 对称匹配类
  • 45min

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

题目链接:https://leetcode.cn/problems/remove-all-adjacent-duplicates-in-string/

0x1 看到题目的第一想法

  • 0x2 自己实现过程中遇到哪些困难

0x3 今日学习的文章链接,或者视频链接

0x4 看完代码随想录之后的想法

  • 匹配相邻元素,最后都是做消除的操作
    • 栈的目的,就是存放遍历过的元素,当遍历当前的这个元素的时候,去栈里看一下我们是不是遍历过相同数值的相邻元素。然后再去做对应的消除操作

0x5 今日收获,记录一下自己的学习时长

  • 删除相邻元素
  • 45min

150. 逆波兰表达式求值

题目链接:https://leetcode.cn/problems/evaluate-reverse-polish-notation/

0x1 看到题目的第一想法

  • 0x2 自己实现过程中遇到哪些困难

0x3 今日学习的文章链接,或者视频链接

0x4 看完代码随想录之后的想法


  • -适合用栈操作运算:遇到数字则入栈;遇到运算符则取出栈顶两个数字进行计算,并将结果压入栈中。

0x5 今日收获,记录一下自己的学习时长

  • 逆波兰表达式:是一种后缀表达式,所谓后缀就是指运算符写在后面
  • 求后缀表达式
  • 30min

待重点复习

20, 1047

总结

  • 栈与队列
    • 用栈实现队列
    • 用队列实现栈