简介

简易计算器

一时半会儿没写出来,看了官方题解.

感觉思路是遇到 ( 前一个操作符号,入栈,遇到 ) 栈中弹出操作符号

遇到 + 符号为栈顶符号 遇到 - 符号为 栈顶符号的反符号

官方使用栈来保存操作默认初始的操作为 + ,ops为1, sign为1

对 3+2-(4-5) 进行思路遍历

如果遇到 3 进入

else {
long num = 0;
while(i < s.size() && (s[i] >= '0' && s[i] <= '9')) {
num = num * 10 + s[i] - '0';
i++;
}
rlt += num * sign;
}

得到 rlt = 3

遇到 '+'

else if(s[i] == '+') {
sign = ops.top();
i++;

sign = 1

遇到 2

rlt = 5

遇到 '-'

else if(s[i] == '-') {
sign = -ops.top();
i++;

sign = -1;

遇到 (

ops.push(sign);
i++;

ops top = -1;

遇到 4

rlt = 5 - 4 = 1;

遇到 -

sign = 1

遇到5

rlt + 5 = 6

遇到 )

直接弹出符号

code

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;
}
}; 作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/basic-calculator/solution/ji-ben-ji-suan-qi-by-leetcode-solution-jvir/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

leetcode 224的更多相关文章

  1. Leetcode 224/227/772 计算器

    题目描述 Leetcode 224 Leetcode 224: 这里想让我们实现一个基础的计算器,来计算给定的字符串. 给定的字符串中包含 ( ) + - 和非负整数和空格. # Example 1: ...

  2. leetcode 224. Basic Calculator 、227. Basic Calculator II

    这种题都要设置一个符号位的变量 224. Basic Calculator 设置数值和符号两个变量,遇到左括号将数值和符号加进栈中 class Solution { public: int calcu ...

  3. [LeetCode] 224. Basic Calculator 基本计算器

    Implement a basic calculator to evaluate a simple expression string. The expression string may conta ...

  4. Java实现 LeetCode 224 基本计算器

    224. 基本计算器 实现一个基本的计算器来计算一个简单的字符串表达式的值. 字符串表达式可以包含左括号 ( ,右括号 ),加号 + ,减号 -,非负整数和空格 . 示例 1: 输入: "1 ...

  5. Java for LeetCode 224 Basic Calculator

    Implement a basic calculator to evaluate a simple expression string. The expression string may conta ...

  6. (medium)LeetCode 224.Basic Calculator

    Implement a basic calculator to evaluate a simple expression string. The expression string may conta ...

  7. [leetcode]224. Basic Calculator

    Implement a basic calculator to evaluate a simple expression string. The expression string may conta ...

  8. Leetcode 224.基本计算器

    基本计算器 实现一个基本的计算器来计算一个简单的字符串表达式的值. 字符串表达式可以包含左括号 ( ,右括号 ),加号 + ,减号 -,非负整数和空格  . 示例 1: 输入: "1 + 1 ...

  9. [LeetCode] 227. Basic Calculator II 基本计算器 II

    Implement a basic calculator to evaluate a simple expression string. The expression string contains ...

  10. [LeetCode] 282. Expression Add Operators 表达式增加操作符

    Given a string that contains only digits 0-9 and a target value, return all possibilities to add bin ...

随机推荐

  1. FastAPI与SQLAlchemy同步数据库集成

    title: FastAPI与SQLAlchemy同步数据库集成 date: 2025/04/15 01:27:37 updated: 2025/04/15 01:27:37 author: cmdr ...

  2. fiddler模拟弱网配置

    1.延长加载时间 Rules-cumtomize rules,打开fiddler scripteditor 搜索simulatemodem-更改时间为需要延长加载的时间(单位为毫秒)-保存退出 2.打 ...

  3. 定时任务稳定性解决方案-healthchecks监控系统

    背景 目前crontab出现问题后无感知,发现问题不及时,几乎是靠业务部门或用户反馈的方式,研发部门再排查的方式,处理问题.发现问题相对滞后,由此可见需要进一步优化crontab的稳定性,降故障通知前 ...

  4. thinkphp mysql 使用IN 条件

    今天使用thinkphp  whrere  in条件查询 数据库是 ,我需要搜索入参  110000  一个字段 ,但是thinkphp 为了效率直接把  in条件转成  = 解决方法 FIND_IN ...

  5. 改进NeteaseCloudMusicGtk4:添加移除歌曲按钮

    之前已经发了一篇博客简述了如何阅读这个项目,尽管这个项目已经开源很久了,但我找了很久都没有找到怎么从播放列表移除歌曲,那就自己动手实现,再提个 PR 吧. 运行起来应用后通过 Inspector(Ct ...

  6. 【记录】Prompt模板|作为甲方怎么清晰专业地描述自己的需求(又名“乙方,给你的甲方扔个GPT解放自己吧”)

    这篇Prompt摘抄并修改自朋友送给我的书的第49页5.2.3让ChatGPT构建提示,质量挺不错,支持一下她的博客:[好书推荐2]AI提示工程实战:从零开始利用提示工程学习应用大语言模型. 书长这样 ...

  7. IDEA设置之“代码提示不区分大小写”

    作用 代码提示不区分大小写 案例1 案例2

  8. Mysql 实现 rank 和 != 问题

    我一直相信, 人是能预测未来的, 这应该是前几年看弗洛伊德, 荣格的一些心理学书, 给我的一些感受, 有个片段是关于做梦的, 一个人梦见子弹穿过他自己的头颅, 结果不久, 他就去世了. 这个片段当时给 ...

  9. MarchingCube算法之C#实现三维❤

    首先致谢该博文,讲解的非常详细:https://blog.csdn.net/u013339596/article/details/19167907?spm=1001.2101.3001.6650.7& ...

  10. JDK网站最终的拼图

    "JDK源码剖析网"目前只上线了一小部分的内容(而且还未更新完成),Javac编译器,HotSpot基础.垃圾收集器以及HotSpot运行时将在今年10月份之前做为付费内容努力更新 ...