# 基本计算器
给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。
示例 1:
输入:s = "1 + 1"
输出:2
示例 2:
输入:s = " 2-1 + 2 "
输出:3
示例 3:
输入:s = "(1+(4+5+2)-3)+(6+8)"
输出:23
提示:
1 <= s.length <= 3 * 105
s 由数字、'+'、'-'、'('、')'、和 ' ' 组成
s 表示一个有效的表达式
## template
```java
class Solution {
public int calculate(String s) {
int res = 0, num = 0;
Stack sta = new Stack();
char preSign = '+';
int len = s.length();
for (int i = 0; i < len; i++) {
char ch = s.charAt(i);
if (Character.isDigit(ch)) {
num = num * 10 + ch - '0';
}
if ((!Character.isDigit(ch) && ch != ' ') || i == len - 1) {
if (preSign == '+') {
sta.push(num);
} else if (preSign == '-') {
sta.push(-1 * num);
} else if (preSign == '*') {
sta.push(num * sta.pop());
} else if (preSign == '/') {
sta.push(sta.pop() / num);
}
num = 0;
preSign = ch;
}
}
while (!sta.isEmpty()) {
res += sta.pop();
}
return res;
}
}
```
## 答案
```java
```
## 选项
### A
```java
```
### B
```java
```
### C
```java
```