代码随想录算法训练营第十一天 | 20.有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值
链接: 20.有效的括号
链接: 1047. 删除字符串中的所有相邻重复项
链接: 150. 逆波兰表达式求值
看完代码随想录之后的想法
20.有效的括号:利用栈进行匹配。写题之前先分清三种情况:第一种是左括号没有匹配成功,遍历完字符串后发现栈不为空,第二种是右括号没有匹配成功,字符串遍历的过程中发现栈已经空了,没有可以匹配的字符串了,第三种是括号没有多余,但是括号的类型没有匹配上。
1047. 删除字符串中的所有相邻重复项:这题和有效括号一样的,利用栈来保存遍历的字符串,在遍历的过程中就与保存在栈中的字符进行匹配,如果匹配成功就直接pop出来,没有的话就push进去。直到遍历完成之后,栈中保存的字符串就是要得到的结果。
150. 逆波兰表达式求值:首先逆波兰表达式就是一种后缀表达式,也就是二叉树的后序遍历方式:左右中;将字符串遍历,如果是遇到数字就加入栈中,如果遇到操作符就将栈中的两个数字取出来进行操作。