leetcode.227. Basic Calculator II
来源:互联网 发布:toblerone淘宝 编辑:程序博客网 时间:2024/06/01 11:10
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:
"3+2*2" = 7" 3/2 " = 1" 3+5 / 2 " = 5
Note: Do not use the eval
built-in library function.
class Solution {public: int calculate(string s) { long long num = 0; char sign = '+'; for (int i = 0; i < s.size(); i++) { if (isdigit(s[i])) { num = num * 10 + s[i] - '0'; } if (!isdigit(s[i]) && !isspace(s[i]) || i == s.size()-1) { switch (sign) { case '+': break; case '-': num = -num; break; case '*': num = numStack.top() * num; //先算乘除 numStack.pop(); break; case '/': num = numStack.top() / num; numStack.pop(); break; default: break; } numStack.push(num); num = 0; sign = s[i]; } } while (!numStack.empty()) { num += numStack.top();//把减法化为加法在乘除后运算 numStack.pop(); } return (int)num; }private: stack<long long> numStack; };
0 0
- [leetcode] 227.Basic Calculator II
- [leetcode] 227. Basic Calculator II
- Leetcode-227.Basic Calculator II
- Leetcode 227. Basic Calculator II
- 227. Basic Calculator II LeetCode
- leetcode 227. Basic Calculator II
- LeetCode *** 227. Basic Calculator II
- LeetCode 227. Basic Calculator II
- leetcode.227. Basic Calculator II
- LeetCode-227.Basic Calculator II
- leetcode 227. Basic Calculator II
- 【Leetcode】227. Basic Calculator II
- [LeetCode]227. Basic Calculator II
- Leetcode 227. Basic Calculator II
- leetcode:227. Basic Calculator II
- LeetCode 227. Basic Calculator II
- [leetcode]227. Basic Calculator II
- [LeetCode]227. Basic Calculator II
- Gradle 多环境配置
- 你是否还在质疑EF的性能
- ROS_Kinetic_01 在 Ubuntu 16.04 安装ROS Kinetic 全教程附资料和镜像 2017.02.15更新
- C 结构体嵌套一级指针 二级指针 动态分配内存
- 第十一周阅读程序(补充)----(2)改变继承类型
- leetcode.227. Basic Calculator II
- 基于openfire的webIM的实现机制想法
- Android------startActivityForResult的详细用法
- 第十一周实践项目(3)
- poj1182食物链(带权并查集+路径压缩)
- STL C++ string类不能使用memcpy,memset等一序列内存操作
- Android屏幕保护KeyguardManager相关内容学习
- Spark-RDD API
- Java自带的MD5加密