class Solution {
public:
int calculate(string s) {
int n = s.size();
int num = 0;
char preSign = '+';
vector<int> res;
for (int i = 0; i < n; i++) {
if (isdigit(s[i])) {
num = num * 10 + (s[i] - '0');
}
if ((!isdigit(s[i]) && s[i] != ' ') || i == n - 1) {
switch(preSign) {
case '+': res.push_back(num);break;
case '-': res.push_back(-num);break;
case '*': res.back() *= num;break;
case '/': res.back() /= num;break;
}
preSign = s[i];
num = 0;
}
}
return accumulate(res.begin(), res.end(), 0);
}
};
07-15
249
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
11-15
07-23
07-23