leetcode Basic Calculator
来源:互联网 发布:轰炸手机号码软件 编辑:程序博客网 时间:2024/06/07 09:29
Implement a basic calculator to evaluate a simple expression string.
The expression string may contain open (
and closing parentheses )
, the plus +
or minus sign -
, non-negative integers and empty spaces .
You may assume that the given expression is always valid.
Some examples:
"1 + 1" = 2" 2-1 + 2 " = 3"(1+(4+5+2)-3)+(6+8)" = 23
Note: Do not use the eval
built-in library function.
遇到"(",将当前的结果和符号存入栈中,遇到")",将当前结果乘以以前符号再加上以前结果,得到当前结果
class Solution {public: int calculate(string s) { stack<int> sta; int i = 0; int f = 1; int ans = 0; for(i = 0;i<s.length();i++) { if(s[i]>='0' && s[i]<='9') { int temp = s[i]-'0'; i++; while(s[i]>='0' && s[i] <='9') { temp = temp*10 + s[i]-'0' ; i++; } i--; ans = ans + temp*f; } else if(s[i] =='-' ) f = -1; else if(s[i] == '+') f = 1; else if(s[i] == '(') { sta.push(ans); sta.push(f); ans = 0; f = 1; } else if(s[i] == ')') { ans = ans * sta.top(); sta.pop(); ans = ans + sta.top(); sta.pop(); } } return ans; }};
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 栈
- Linux 下编译并安装配置 Qt (完整版)
- 工作效率工具/常用方法
- JVM虚拟机结构
- CodeForces 550B Preparing Olympiad(DFS回溯+暴力枚举)
- 三方(广告/统计)支持
- leetcode Basic Calculator
- AES加密解密
- sgu283:Mechanics(计算几何)
- Android中获取JSON
- 公司待遇
- 2015062702 - 裴行俭
- 剑豪生死斗小说
- CodeForces 550C Divisibility by Eight(枚举)
- 【看了一篇解释javascript中的上下文对象的,比较深刻】深入理解Javascript之执行上下文(Execution Context)