224. 基本计算器
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/basic-calculator/
实现一个基本的计算器来计算一个简单的字符串表达式 s 的值。(s 由数字、’+’、’-’、’(’、’)’、和 ’ ’ 组成)
示例:
输入:s = "1 + 1"
输出:2
输入:s = " 2-1 + 2 "
输出:3
输入:s = "(1+(4+5+2)-3)+(6+8)"
输出:23
答案
这道题我没有尝试,因为没什么思路,看了题解,需要用一个栈,这个栈存储的不是计算结果,而是每个数字前面对应的符号,这个符号是由当前位置前面的计算符以及括号共同组成的
当扫描到非数字时,如果遇到+
或-
,那么需要去换算出对应的符号,遇到(
时将符号压入栈中,遇到)
时将元素从栈中弹出,遇到数字时,根据符号计算结果
这道题我现在(2021.03.10)是做不出来的。