leetcode.224. Basic Calculator
2016-05-10 18:29
239 查看
Implement a basic calculator to evaluate a simple expression string.
The expression string may contain open
.
You may assume that the given expression is always valid.
Some examples:
Note: Do not use the
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
evalbuilt-in library function.
class Solution { public: int calculate(string s) { if(s.size() == 0) return 0; stack<int> stack; int res = 0; int sign = 1; for(int i=0; i<s.size(); i++) { if (isdigit(s[i])) { int cur = s[i]-'0'; while(i+1<s.size() && isdigit(s[i+1])) cur = 10*cur + s[++i] - '0'; res += sign * cur; }else if(s[i]=='-') { sign = -1; } else if(s[i]=='+') { sign = 1; } else if( s[i]=='(') { stack.push(res); res = 0; stack.push(sign); sign = 1; } else if(s[i]==')') { int num1 = stack.top(); stack.pop(); int num2 = stack.top(); stack.pop(); res = num1 * res + num2; sign = 1; } } return res; } };
相关文章推荐
- 动态规划—Problem P
- Eclipse中从svn检出maven项目,报pom.xml错误,相关包或类不能导入的问题
- EDA事件驱动架构
- ABAP 换行符,TAB KEY 替换方式
- Android中自定义ProgressDialog显示位置
- bash嵌套expect实现交换机的交互式登录实例
- windows还原后,eclipse创建的jsp项目css和js失效的问题
- poj 1733Parity game(map离散+带权并查集)
- 第10,11周 阅读程序写出运行结果 (3)
- 手机游戏上线前的准备
- java synchronized静态同步方法与非静态同步方法,同步语句块
- Directx11学习笔记【十一】 画一个简单的三角形--effect框架的使用
- 日历 日期时间选择器
- 小代码 寻找K个最大的数
- oracle 存储过程循环执行update语句
- Etag 笔记
- Gradle解析
- alibaba的FastJson(高性能JSON开发包)
- 如何实现手机缓存清理的功能
- 一些书籍整理