描述
请写一个整数计算器,支持加减乘三种运算和括号。
数据范围:0\le |s| \le 1000≤∣s∣≤100,保证计算结果始终在整型范围内
要求:空间复杂度: O(n)O(n),时间复杂度 O(n)O(n)
示例1
输入:"1+2"
返回值:3
示例2
输入:"(2*(3-4))*5"
返回值:-10
示例3
输入:"3+2*3*4-1"
返回值:26
1、当前指针为index,碰到左括号时,递归执行index+1到end-1
1)左括号个数bracketnum初始化为1,end初始为index+1
2)当bracketnum大于1时,end+=1,碰到左括号bracketnum+=1,右括号-=1
3)index更新为end-1
2、遇到数字转为整形
3、遇到符号时利用stack加减乘法运算
def solve(s):
stack=[]
num=0
ans=0
sign='+'
index=0
while index<len(s):
if s[index]=='(':
end=index+1
bracketnum=1