LeetCode---Basic Calculator
来源:互联网 发布:mac下制作winpe启动盘 编辑:程序博客网 时间:2024/06/06 13:20
题目大意:给出一个字符串形式的计算表达式,由整数,左右括号,加减符号组成 计算其结果。
算法思想:
边扫描字符串,边计算结果,当扫到一个数时将其记录到num中,扫描到非数的时候讲之前的数通过计算存到res中,然后判断扫描操作符如果为'+'号将sign标记为1,如果为‘-’则sign标记为-1,如果为‘(’则将当前结果和操作符入栈,来计算括号内的表达式,如果遇到‘)’则说明括号内的表达式计算完成分别取操作数栈顶和符号栈顶 来计算出当前的结果。按此操作,直至字符串扫描完毕。将最后的操作数计算入结果中。
代码如下:
class Solution {public: int calculate(string s) { if(s.size()==0) return 0; stack<int> nums,ops; int res=0;//记录当前结果 int num=0;//读取到的操作数 int sign=1;//记录操作符 for(char c:s){ if(isdigit(c)){ num=num*10+c-'0'; } else{//遇见符号 res+=num*sign; num=0; if(c=='+') sign=1; if(c=='-') sign=-1; if(c=='('){ nums.push(res); ops.push(sign); res=0;//还原 sign=1; } if(c==')'){ res=res*ops.top()+nums.top(); ops.pop(); nums.pop(); } } } res+=sign*num; return res; }};
0 0
- 【LeetCode】Basic Calculator && Basic Calculator II
- LeetCode - Basic Calculator & Basic Calculator II
- Leetcode之Basic Calculator & Basic Calculator II
- [leetcode] Basic Calculator
- Basic Calculator - LeetCode 224
- LeetCode Basic Calculator
- leetcode:Basic Calculator
- [leetcode][math] Basic Calculator
- [LeetCode] Basic Calculator
- Leetcode 224: Basic Calculator
- leetcode 224 Basic Calculator
- [LeetCode] Basic Calculator II
- [leetcode] Basic Calculator II
- [Leetcode] Basic Calculator
- leetcode Basic Calculator
- leetcode Basic Calculator II
- LeetCode-Basic Calculator
- leetcode Basic Calculator 栈
- NOIP2015普及组第四题解题报告
- Android中使用百度API定位,并实现手势操作(显示最后点击地图的位置)
- Spark修炼之道(基础篇)——Linux大数据开发基础:第一节、Linux介绍、安装及使用初步
- Java-JSSE-SSL/TLS编程代码实例-双向认证
- Xcode 查看手机app沙盒内容
- LeetCode---Basic Calculator
- C语言栈结构实现
- GSM Frame Structure - GSM帧结构
- 九度OJ 1255:骰子点数概率 (递归、DP)
- 为一个activity新建一个进程
- Android Animations动画使用详解
- 调试php代码的利器firephp
- MFC嵌入google map
- 搭配ImageLoader的加水印的工具类