题目

basic-calculator


算法

* 直接模拟


代码

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;
    }
};

results matching ""

    No results matching ""