栈与队列类
文章平均质量分 63
Ben土豆
这个作者很懒,什么都没留下…
展开
-
[Leetcode刷题] - LC946 Validate Stack Sequences
本题考查对于Stack工作原理的理解,Stack出栈顺序是后进先出(LIFO),加入一个数组进栈顺序 [1,2,3,4,5],那么出栈就是[5,4,3,2,1], 如果期望出栈顺序是[4,5,3,2,1],那么必须在5进栈之前,要把4 pop出去。所以这道题整体思路就是一次将数字push进栈,设置一个指针记录当前出栈数字,如果进栈数==出栈数,那么将该数字pop,并且指针后移一步,最后判断指针是否指向末尾。原创 2023-05-24 03:03:52 · 38 阅读 · 0 评论 -
[亚麻高频题] Leetcode 1597. Build Binary Expression Tree From Infix Expression (中缀表达式构造二叉表达式树)
题目描述 & 链接Leetcode 1597:根据计算表达式生成二叉树,使得二叉树的中序遍历结果与计算表达式相同题目思路对于计算表达式的题目,通常能使用双栈思路求解,这道题思路与Leetcode 772. Basic Calculator III (计算器 III)基本相同,唯一不同只是处理结果上,之前直接计算出结果即可,这里需要建成二叉树节点,所以数字栈保存的是当前树节点,计算过程是将栈顶pop出来,作为树根,将数字栈pop出两个节点作为左右叶子节点,与树根相连,然后将该树根重新加..原创 2022-02-10 05:09:53 · 7392 阅读 · 0 评论 -
[亚麻高频题] Leetcode 772. Basic Calculator III (计算器 III)
题目描述 & 链接Leetcode 772:是Leetcode 224. Basic Calculator(计算器)题目的进阶版,给定一个计算表达式,运算符包括左右括号,"+ - * /"运算,求最后计算结果题目思路与Leetcode 224. Basic Calculator(计算器)是相同的,利用双栈(符号栈,数字栈)求解,具体可以参考前面链接,唯一需要改进的是加入乘法和除法并分配为最高优先级,在维护符号栈时,当新符号优先级比栈顶小或相同时,触发计算,直到栈顶空或者比当前有限...原创 2022-02-10 04:39:45 · 1117 阅读 · 0 评论 -
[亚麻高频题] Leetcode 224. Basic Calculator(计算器)
题目描述 & 链接Leetcode 224:给点一个String表达式 "1 + 2 - 3"返回最后的计算结果,运算符有+/-, ()数值存在负数。题目思路基本表达式计算类问题的通用思路,就是采用双栈,一个栈保存运算符号和括号,一个栈来保存数字。需要注意的是符号栈根据优先级维护一个单调递增栈,首先定义运算符的优先级:"(" 是1优先级; "+","-"是2优先级。基本思路遍历每一个字符,当遇到"("进符号栈,当找到")"时开始进行数字运算,直到符号栈栈顶...原创 2022-02-10 02:02:39 · 199 阅读 · 0 评论