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;
    }
};
相关推荐
Irissgwe18 小时前
一、Qt 概述
c++·qt·gui·qt creator
菜菜的顾清寒18 小时前
力扣HOT100(49)动态规划 -- 打家劫舍
算法·leetcode·动态规划
草莓熊Lotso18 小时前
【Linux网络】深入理解 HTTP 协议(一):从基础概念到 URL 编码解码
linux·网络·c++·网络协议·http·软件工程
眠りたいです18 小时前
现代C++:C++17中的新语言特性
开发语言·c++·c++17
一只旭宝18 小时前
【C++入门精讲17】序列容器
开发语言·c++
郝学胜-神的一滴19 小时前
Qt 高级开发 021:零基础吃透 QVBoxLayout 垂直布局
开发语言·c++·qt·程序人生·用户界面
basketball61619 小时前
C++进阶:2. std::move 和 std::forward 函数
java·开发语言·c++
玖釉-19 小时前
LeetCode Hot 100 知识点总结与算法指南
c++·windows·算法·leetcode
Hall_IC19 小时前
LSM6DS3TR-C现货询价丨粤科源兴ST代理商,专业FAE技术支持
c++