224. Basic Calculator
# Hard
Key idea: stack, which can skip space
Take 5+ (1+5 - (4+ 5- 2) - 3+2) - 7 as example:
= 5+(6-(4+5-2)-3+2)) - 7
= 5+(6-7-3+2)-7
= 5-2-7
= -4
思路:遇到“(”,将前面的计算结果和括号前的符号压入栈;遇到“)”说明这一个最小单元的括号计算完毕,则与这个()前面的结果相加;遇到“+”则说明前面一个数字很完整了,加上,但下一个数字的符号是“+”;遇到“-”则说明前面一个数字很完整了,加上,但下一个数字的符号是“-”。
Last updated