栈
表达式解析
leetcode 1006
逆波兰表达式需要维护数字和操作符两个栈,这题由于操作符顺序是固定的,可以不用操作符栈。
题目乘法和除法是连在一起算的,加法是单独算的,减法减去的值总是乘除的结果,模拟一下即可。
需要注意除法的负数取值。
leetcode 394
可以dfs也可以用栈迭代模拟,新学了这种dfs的方法叫递归下降解析,“下降”指的是我们从最高层级,一层层往下去匹配,是用来处理嵌套解析的一种方式。
特点是维护全局index,相比每次都去搜索匹配右括号(O(n^2)),这种全局index扫描的方法因为每个字符只被处理一次,所以保证了O(n)的线性时间复杂度,效率最高。
注意如