# Leetcode 227. Basic Calculator II
## 題解
### Stack solution
先把 **\*** 和 **/** 處理完,再把所有的數字加起來,遇到 **-** 轉換數字為負數
```python!
class Solution:
def calculate(self, strings: str) -> int:
n = len(strings)
if n == 0 or not strings: return 0
stack = []
cur_num = 0
op = "+"
for i in range(n):
s = strings[i]
if s.isdigit():
cur_num = (cur_num * 10) + int(s)
if not s.isdigit() and s != " " or i == n - 1: # 處理到最後一個的時候,需要把最後的 operator 順便一起處理掉
if op == "*":
stack.append(stack.pop() * cur_num)
elif op == "/":
stack.append(int(stack.pop() / cur_num))
elif op == "+":
stack.append(cur_num)
elif op == "-":
stack.append(cur_num * -1)
op = s
cur_num = 0
return sum(stack)
```