代码随想录day11 用栈实现队列 | 用队列实现栈 | 有效的括号 | 删除字符串中的所有相邻重复项
用栈实现队列
解题思路
用两个堆栈来实现,一个栈用于存储新存进来的,一个栈用于输出结果当队列
知识点
堆栈
心得
较为简单的一题
用队列实现栈
解题思路
只用一个队列,当需要pop的时候,将之前所有存进队列的值先弹出,再push进队尾
知识点
队列
心得
一开始想到这个思路,但是没想到代码怎么写,原因是对C++中Queue使用的不够熟练
有效的括号
解题思路
遍历整个字符串,如果遇到左括号则将右括号存入堆栈,遇到右括号的时候检查堆栈顶部,如果不是与之相配的左括号或者为空,则不有效,反之有效。
知识点
堆栈,字符串
心得
一开始想到用堆栈,但是不知道怎么判断是不是有效。
【二刷】注意当栈存入右括号时,要注意先判断栈是否为空,然后再存入堆栈
删除字符串中的所有相邻重复项
解题思路
存入每个字母,当栈顶的元素和当前字母相等时弹出,最后把堆栈所有的值弹出存入新的字符串
知识点
堆栈,字符串
心得
一开始想到用堆栈,但是不知道怎么判断是不是有效。