Leetcode 224. 基本计算器

文章目录

  • 题目
  • 代码(10.1 首刷看解析)

题目

Leetcode 224. 基本计算器_第1张图片
Leetcode 224. 基本计算器

代码(10.1 首刷看解析)

class Solution {
public:
    int calculate(string s) {
        stack<int> sk;  // 存储正负号
        sk.push(1);
        int sign = 1;
        int res = 0;
        int i = 0;
        while(i < s.size()) {
            if(s[i] == ' ') {
                i++;
            } else if(s[i] == '+') {
                sign = sk.top();
                i++;
            } else if(s[i] == '-') {
                sign = -sk.top();
                i++;
            } else if(s[i] == '(') {
                sk.push(sign);
                i++;
            } else if(s[i] == ')') {
                sk.pop();
                i++;
            } else {
                long long num = 0;
                while(i < s.size() && isdigit(s[i])) {
                    num = num*10+s[i]-'0';
                    i++;
                }
                res += num*sign;
            }
        }
        return res;
    }
};

你可能感兴趣的:(Leetcode专栏,leetcode,算法,职场和发展)