1021. 删除最外层的括号

偶尔善良 提交于 2020-01-22 04:20:16

栈的用处,当遍历的时候,后续元素的操作根据前面元素的状态而不同时, 即我们需要存储前面的元素来判断对后面元素的操作, 也可以根据后面的元素状态对前面的元素进行二次操作。

比如删除最外层的括号这一题,

遇到左括号,我们把它入栈,遇到之后的括号, 我们需要根据它的状态而对之前存储的元素进行操作,比如我们遇到了右括号,那么我们就得到一个删除栈顶的左括号。

可以看出,在这里,我们的栈中保存的都是左括号,而对于原语来说最重要的莫过于第一个左括号的位置,我们从第一个左括号之后遍历,而第一个左括号的寿命直到我们遍历完一个完整的原语。所以之前元素的状态很重要,这时我们就需要栈

算法思想: “ 不存” 比 “存了再删” 更高级。
遍历最好做一次,不用先把有效数字加工好存放好,再遍历,多一次遍历的时间也是没有必要的。
不要放过题目给的信息,有些信息有助于想出更简单的函数。

Hashmap ; 当遇到一个集合与另一个集合有多次比较的功能情况,建议使用 hashmap 。当然这个比较最终都要能化为一一对应的关系。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!