Leetcode 224. 基本计算器

文章目录

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

题目


Leetcode 224. 基本计算器

代码(10.1 首刷看解析)

cpp 复制代码
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;
    }
};
相关推荐
YangYang9YangYan1 分钟前
2027 秋招|大数据管理与应用 企业数字化岗位面试高频问题拆解与求职准备
面试·职场和发展
(Charon)2 分钟前
【C++面试】手写智能指针(二):从shared_ptr理解引用计数与共享所有权
c++·算法
一条大祥脚11 分钟前
26 ICPC上海 交互|二分|重心|构造|二分图|贪心|SOSDP|三进制枚举|线性基|字典序贪心|DFS|分块|单侧递归线段树
算法·深度优先·交互·分块·icpc上海站·单侧递归线段树
吹什么轩17 分钟前
数据结构复习:二叉搜索树
数据结构·算法
H.莓飛19 分钟前
【数据结构】堆
linux·数据结构·算法
纪念 22928 分钟前
C++算法(二)
开发语言·c++·算法
lie..37 分钟前
30天从零开始学AI应用开发(Day 16):Embedding 是什么?用人话讲明白“向量检索”
人工智能·算法·embedding
ychqsq43 分钟前
204.现场
经验分享·职场和发展
剑胆凌锋10 小时前
等级保护测评工程师的困境
网络·安全·web安全·网络安全·职场和发展
朝朝辞暮i11 小时前
C++ 第 21 课:struct —— 把一组相关数据打包在一起
开发语言·c++·算法