![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
栈和队列
文章平均质量分 71
SNAKEpc12138
这个作者很懒,什么都没留下…
展开
-
栈与队列(六)
leetcode150. 逆波兰表达式求值 根据 逆波兰表示法,求表达式的值。 有效的运算符包括 + , - , * , / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 说明: 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 逆波兰表达式: 逆波兰表达式是一种后缀表达式,所谓后缀就是指算符写在后面。 平常使用的算式则是一种中缀表达式,如 ( 1 + 2 ) * ( 3 + 4 ) 。 该算式的逆波兰表达式写法为转载 2021-06-05 10:51:43 · 119 阅读 · 0 评论 -
栈与队列(五)
leetcode1047. 删除字符串中的所有相邻重复项 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 思路 匹配问题都是栈的强项. 本题要删除相邻相同元素,其实也是匹配问题,相同左元素相当于左括号,相同右元素就是相当于右括号,匹配上了就删除。 那么再来看一下本题:可以把字符串顺序放到一个栈中,然后如果相同的话 栈就弹出,这样最后栈里剩下的元素都是相邻转载 2021-06-05 10:30:20 · 112 阅读 · 0 评论 -
栈与队列(四)
leetcode20. 有效的括号 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 思路 由于栈结构的特殊性,非常适合做对称匹配类的题目。 首先要弄清楚,字符串里的括号不匹配有几种情况。 先来分析一下 这里有三种不匹配的情况, 第一种情况,字符串里左方向的括号多余了 ,所以不匹配。如图: 第二种情况,括号没有多余,但是 括号的类型没有匹配上。如图: 第三种情况,字转载 2021-06-02 10:53:29 · 118 阅读 · 0 评论 -
栈和队列(三) : 用队列实现栈
leetcode225. 用队列实现栈 https://leetcode-cn.com/problems/implement-stack-using-queues/ 使用队列实现栈的下列操作: 思路 (这里要强调是单向队列queue, 而不是双向队列deque) 队列模拟栈,其实一个队列就够了,那么我们先说一说两个队列来实现栈的思路。 队列是先进先出的规则,把一个队列中的数据导入另一个队列中,数据的顺序并没有变,并有变成先进后出的顺序。 所以用栈实现队列, 和用队列实现栈的思路还是不一样的,这取决于这两转载 2021-06-01 11:26:12 · 266 阅读 · 0 评论 -
栈和队列(二) : 用栈实现队列
leetcode232.用栈实现队列 https://leetcode-cn.com/problems/implement-queue-using-stacks/ 使用栈实现队列的下列操作: push(x) – 将一个元素放入队列的尾部。 pop() – 从队列首部移除元素。 peek() – 返回队列首部的元素。 empty() – 返回队列是否为空。 示例: 思路 使用栈来模式队列的行为,如果仅仅用一个栈,是一定不行的,所以需要两个栈一个输入栈,一个输出栈,这里要注意输入栈和输出栈的关系。 在pus转载 2021-06-01 10:54:44 · 185 阅读 · 0 评论 -
栈和队列(一)
定义 栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾转载 2021-06-01 10:19:24 · 86 阅读 · 0 评论