题目
算法
* 直接模拟
代码
class Solution {
public:
int calculate(string s) {
int res = 0;
vector<int> sign(2, 1);
for (int i = 0; i < s.size(); ++i) {
char c = s[i];
if (c >= '0') {
int num = 0;
while (i < s.size() && s[i] >= '0') {
num = 10 * num + s[i++] - '0';
}
res += sign.back() * num;
sign.pop_back();
--i;
}
else if (c == ')') sign.pop_back();
else if (c != ' ') sign.push_back(sign.back() * (c == '-' ? -1 : 1));
}
return res;
}
};