(真的很忙,所以博客记录得非常粗糙,见谅)
文章链接:https://programmercarl.com/%E6%A0%88%E4%B8%8E%E9%98%9F%E5%88%97%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html
20. 有效的括号:https://programmercarl.com/0020.%E6%9C%89%E6%95%88%E7%9A%84%E6%8B%AC%E5%8F%B7.html
1047. 删除字符串中的所有相邻重复项:https://programmercarl.com/1047.%E5%88%A0%E9%99%A4%E5%AD%97%E7%AC%A6%E4%B8%B2%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E7%9B%B8%E9%82%BB%E9%87%8D%E5%A4%8D%E9%A1%B9.html
150. 逆波兰表达式求值:https://programmercarl.com/0150.%E9%80%86%E6%B3%A2%E5%85%B0%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%B1%82%E5%80%BC.html
自己看到题目的第一想法:总是想不到怎么和栈联系起来
看完代码随想录之后的想法:
1. 有效的括号:确实牛逼,这个括号。遇到左括号加入右括号,遇到右括号看看stack是不是empty的 or stack.pop()不是左括号就return false,然后别的情况都return true。
2. 删除字符串中的所有相邻重复项:看到对对碰删除elements的就一定要想到栈,因为栈可以知道上一个放进去的东西是啥;所以这里就是遇到了一样的element就可以不加进去,然后把里面的pop出来,然后就一直对对碰。
3. 逆波兰表达式求值:跟题目里自带的提示一样,就是遇到数字加进stack,然后算完了之后的也加进stack,然后遇到运算符号就pop两个数字出来做运算。
自己实现过程中遇到哪些困难:困难就是遇到这种对对碰的题,或者并没有很明显得告诉你是对对碰的题的情况下我经常想不到要用stack
今日收获,记录一下自己的学习时长:对栈的应用有了更清晰的认知,学习时长7小时