代码随想录训练营Day11:栈与队列part2

20.有效的括号

括号匹配是使用栈解决的经典问题
遍历字符串:遇到左括号入栈,遇到匹配右括号出栈。
匹配技巧:输入左括号的时候右括号先入栈,到时候只要判断相等就可出栈

  • 这种题可以先思考不匹配的情况:左括号多余,右括号多余,都不多余但是不匹配。所以其实是:在遍历过程中空了,或者不匹配的时候都说明不匹配。
  • 完全匹配好:遍历完后,栈空了。

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

题意理解:匹配相邻元素,消除。
思路:在删除重复项的时候,就是要知道当前遍历的这个元素,在之前是否遍历过一样的元素。所以用来储存之前遍历过的元素。
注意:由于栈里探出的元素是倒叙,所以最后需要再反转一下字符串。
疑问:??在STL里,pop()的源码函数
补充:函数的递归调用就是采用栈,每一次递归调用都会把函数的局部变量、参数值和返回地址等压入调用栈中,然后递归返回的时候,从栈顶弹出上一次递归的各项参数。

150逆波兰表达式求值

逆波兰表达式是一种后缀表达式,也相当于是二叉树中的后序遍历所谓后缀就是指运算符写在后面。平常的算式是中缀表达式
为什么计算机会使用逆波兰表达式?

  • 去掉括号后无歧义
  • 适合使用栈操作:遇到数字则入栈,遇到运算符则取出栈顶两个数字进行计算,并将结果压入栈中
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值