LeetCode227:Basic Calculator II
2016-03-24 09:00
148 查看
Implement a basic calculator to evaluate a simple expression string.
The expression string contains only non-negative integers, +, -, *, / operators and empty spaces . The integer division should truncate toward zero.
You may assume that the given expression is always valid.
Some examples:
Note: Do not use the eval built-in library function.
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
和Basic Calculator比較相似。都是很巧妙的解法。
runtime:24ms
The expression string contains only non-negative integers, +, -, *, / operators and empty spaces . The integer division should truncate toward zero.
You may assume that the given expression is always valid.
Some examples:
Note: Do not use the eval built-in library function.
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
和Basic Calculator比較相似。都是很巧妙的解法。
runtime:24ms
class Solution { public: int calculate(string s) { int len=s.size(); if(s.empty()) return 0; stack<int> st; int num = 0; char sign = '+'; for(int i=0;i<len;i++){ if(isdigit(s[i])){ num = num*10+s[i]-'0'; } if(!isdigit(s[i]) &&' '!=s[i] || i==len-1){ if(sign=='-'){ st.push(-num); } if(sign=='+'){ st.push(num); } if(sign=='*'){ int tmp=st.top(); st.pop(); st.push(tmp*num); } if(sign=='/'){ int tmp=st.top(); st.pop(); st.push(tmp/num); } sign = s[i]; num = 0; } } int re = 0; while(!st.empty()){ re += st.top(); st.pop(); } return re; } };
相关文章推荐
- Fragment
- ReSharper.8.0.14.856注册码
- ASP.NET-后台cookie与前台JQUERY解析cookie
- POJ 1862 Stripies
- solr安装
- 第四周项目1-求最大公约数(1)
- 第三周项目4(3)年龄几何
- 如何通过图片在 HTTPS 网站中获取 HTTP 接口数据
- ASP.NET-RedirectToAction只能使用get方法
- 2016 新学++ , 回顾过去展望未来
- 当创客空间比创客还多 想要活先加张床
- 将.hhc文件转换成html文件解析
- Servlet 单例多线程
- System.err.println()与System.out.println的区别
- C++作业2—分段函数求值,两点距离,模拟ATM
- JDK源码阅读-1-Collection
- c++作业2
- 剑指 offer代码解析——面试题35第一个只出现一次的字符
- C# PLINQ 内存列表查询优化历程
- 剑指 offer代码解析——面试题35第一个只出现一次的字符