C++ | Leetcode C++题解之第224题计算计算器

题目:

题解:

cpp 复制代码
class Solution {
public:
    int calculate(string s) {
        stack<int> ops;
        ops.push(1);
        int sign = 1;

        int ret = 0;
        int n = s.length();
        int i = 0;
        while (i < n) {
            if (s[i] == ' ') {
                i++;
            } else if (s[i] == '+') {
                sign = ops.top();
                i++;
            } else if (s[i] == '-') {
                sign = -ops.top();
                i++;
            } else if (s[i] == '(') {
                ops.push(sign);
                i++;
            } else if (s[i] == ')') {
                ops.pop();
                i++;
            } else {
                long num = 0;
                while (i < n && s[i] >= '0' && s[i] <= '9') {
                    num = num * 10 + s[i] - '0';
                    i++;
                }
                ret += sign * num;
            }
        }
        return ret;
    }
};
相关推荐
hanlin031 小时前
刷题笔记:力扣第43、67题(字符串计算)
笔记·算法·leetcode
yangtuoni2 小时前
vscode调试C++程序
c++·ide·vscode
m0_587958952 小时前
C++中的命令模式变体
开发语言·c++·算法
2501_924952693 小时前
代码生成器优化策略
开发语言·c++·算法
xushichao19894 小时前
C++动态链接库开发
开发语言·c++·算法
fengenrong4 小时前
20260324
c++·算法
qq_416018724 小时前
设计模式在C++中的实现
开发语言·c++·算法
2301_776508724 小时前
C++与机器学习框架
开发语言·c++·算法
ALex_zry4 小时前
现代C++设计模式实战:从AIDC项目看工业级代码架构
c++·设计模式·架构
Albertbreak4 小时前
STL容器内部实现剖析
开发语言·c++·算法