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;
    }
};
相关推荐
俩娃妈教编程5 分钟前
C++基础知识点:位运算
java·开发语言·jvm·c++·位运算
一直不明飞行10 分钟前
C++ pari使用的两个注意事项
开发语言·c++
CoderCodingNo14 分钟前
【GESP】C++六级/五级练习题 luogu-P1323 删数问题
开发语言·c++·算法
We་ct18 分钟前
LeetCode 211. 添加与搜索单词 - 数据结构设计:字典树+DFS解法详解
开发语言·前端·数据结构·算法·leetcode·typescript·深度优先
一叶落43818 分钟前
LeetCode 202. 快乐数(C语言详解 | 三种解法 | 哈希表 + 快慢指针)
c语言·数据结构·算法·leetcode·散列表
吃着火锅x唱着歌20 分钟前
LeetCode 1190.反转每对括号间的子串
算法·leetcode·职场和发展
再难也得平23 分钟前
力扣238. 除自身以外数组的乘积(Java解法)
python·算法·leetcode
左手の明天25 分钟前
Linux内核裁剪深入浅出:从原理到实操,打造轻量化嵌入式内核
linux·arm开发·c++
0 0 028 分钟前
CCF-CSP 38-2 机器人复健指南(jump)【C++】考点:BFS/DFS
开发语言·c++·算法·深度优先·宽度优先
xiaoye-duck29 分钟前
《算法题讲解指南:优选算法-前缀和》--29.和为k的子数组,30.和可被k整除的子数组
c++·算法