代码随想录第十一天 | LeetCode 20. 有效的括号、LeetCode 1047. 删除字符串中的所有相邻重复项、LeetCode 150. 逆波兰表达式求

目录

​​​​​​LeetCode 20. 有效的括号

文章讲解:代码随想录(programmercarl.com)

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

思路

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

文章讲解:代码随想录(programmercarl.com)

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

思路

LeetCode 150. 逆波兰表达式求值 

文章讲解:代码随想录(programmercarl.com)

视频讲解:栈的最后表演! | LeetCode:150. 逆波兰表达式求值_哔哩哔哩_bilibili

思路


首先要弄清楚这里有三种不匹配的情况:第一种情况,字符串里左方向的括号多余了 ,所以不匹配。第二种情况,括号没有多余,但是 括号的类型没有匹配上。 第三种情况,字符串里右方向的括号多余了,所以不匹配。

第一种情况:已经遍历完了字符串,但是栈不为空,说明有相应的左括号没有右括号来匹配,所以return false第二种情况:遍历字符串匹配的过程中,发现栈里没有要匹配的字符。所以return false。第三种情况:遍历字符串匹配的过程中,栈已经为空了,没有匹配的字符了,说明右括号没有找到对应的左括号return false。

 

要删除相邻相同元素,在删除相邻重复项的时候,其实就是要知道当前遍历的这个元素,我们在前一位是不是遍历过一样数值的元素,栈的目的就是存放遍历过的元素,当遍历当前的这个元素的时候,去栈里看一下我们是不是遍历过相同数值的相邻元素。

 

其实逆波兰表达式相当于是二叉树中的后序遍历。可以把运算符作为中间节点,按照后序遍历的规则画出一个二叉树。但我们没有必要从二叉树的角度去解决这个问题,只要知道逆波兰表达式是用后序遍历的方式把二叉树序列化了,就可以了。

 

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-02-04 04:50:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-04 04:50:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-04 04:50:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-04 04:50:01       20 阅读

热门阅读

  1. MongoDB的索引与索引字段的顺序

    2024-02-04 04:50:01       29 阅读
  2. Interfaces & Abstract Classes

    2024-02-04 04:50:01       27 阅读
  3. 头歌C++之函数强化练习题

    2024-02-04 04:50:01       27 阅读
  4. 深入学习和实践Python

    2024-02-04 04:50:01       29 阅读
  5. Python循环语句——while循环的基础应用

    2024-02-04 04:50:01       33 阅读
  6. 解密Android某信聊天记录

    2024-02-04 04:50:01       29 阅读
  7. android tv开发-1,leanback 2

    2024-02-04 04:50:01       29 阅读
  8. linux 脚本 多行重定向

    2024-02-04 04:50:01       28 阅读
  9. 【国产MCU】-CH32V307-通用同步/异步收发器(USART)

    2024-02-04 04:50:01       32 阅读