题目

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 ""