整个题解分为2部分,第一部分是根据输入的字符串表达式,构建出逆波兰表达式;第二步是根据给出的逆波兰表达式求具体值。 第一部分是难点,需要考虑到负号与负数的影响,当负号之前为括号或者没有任何符号时,不能直接入栈减号(通过开头补 0 消除),也要考虑到自然数存在大于个位数的情况,比如 100 放入栈中不是 1,0,0 这三个数。设立一个字符串 vector 存储逆波兰表达式结果,数字直接 push_back,遇到运算符先放入临时的 stack 中,后续再放入 vector 中汇总。 当第一部分构建完毕后,根据得到的逆波兰表达式数组很容易求出最终的结果,也是通过栈来实现。 代码如下,相关注释已经写全...