-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path227.基本计算器-ii.cpp
executable file
·36 lines (35 loc) · 1.06 KB
/
227.基本计算器-ii.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
class Solution {
public:
int calculate(string s) {
long res = 0, num = 0, cur = 0, n = s.length();
char last_op = '+';
for(int i = 0;i < n;++i)
{
if(s[i] >= '0' && s[i] <= '9')
num = num * 10 + s[i] - '0';
if(s[i] == '+' || s[i] == '-' || s[i] == '*' || s[i] == '/' || i == n - 1){
switch(last_op){
case '+':
cur += num;
break;
case '-':
cur -= num;
break;
case '*':
cur *= num;
break;
case '/':
cur /= num;
break;
}
if(s[i] == '+' || s[i] == '-' || i == n - 1){
res += cur;
cur = 0;
}
last_op = s[i];
num = 0;
}
}
return res;
}
};