class Solution:
def calculate(self, s: str) -> int:
nums=0
stack=[]
ops='+'
n=0
while n<len(s):
if s[n]==' ':
n+=1
continue
if s[n].isdigit():
nums=nums*10+int(s[n])
while n<len(s)-1 and s[n+1].isdigit():
n+=1
nums=nums*10+int(s[n])
if ops=='+':
stack.append(nums)
elif ops=='-':
stack.append(-nums)
elif ops=='*':
top=stack.pop()
stack.append(top*nums)
elif ops=='/':
top=stack.pop()
stack.append(int(top/nums))
nums=0
elif s[n] in "+-*/":
ops=s[n]
n+=1
return sum(stack)
LEETCODE 227. 基本计算器 II
最新推荐文章于 2024-06-15 09:23:13 发布