227. Basic Calculator II
来源:互联网 发布:惊天危机 知乎 编辑:程序博客网 时间:2024/06/07 02:36
这道题给出的表达式没有了括号,改成了加减乘除,所以要考虑优先级的问题。
思路是遇到乘除就在栈中弹出一个数来运算,运算完了压栈。碰到加减就压栈,注意遇到减的时候压的是相反数。
还是像上一个题一样定义一个全局的符号表示上一个遇到的符号是什么。
class Solution {public: int calculate(string s) { int res = 0, n = s.size(); char sign = '+'; stack<int> stk; for(int i = 0; i < n; ++i){ char c = s[i]; if(c == ' ') continue; else if(c >= '0'){ int num = 0; while(i < n && s[i] >= '0'){ num = 10 * num + s[i] - '0'; i++; } //cout << num << endl; i--; if(sign == '+') stk.push(num); else if(sign == '-') stk.push(-num); else if(sign == '*'){ int tmp = num * stk.top();stk.pop(); stk.push(tmp); }else if(sign == '/'){ int tmp = stk.top() / num; stk.pop(); stk.push(tmp); } }else{ sign = c; } } while(!stk.empty()){ //cout << stk.top() << endl; res += stk.top();stk.pop(); } return res; }};
阅读全文
0 0
- 227. Basic Calculator II
- 227. Basic Calculator II
- 227. Basic Calculator II
- 227. Basic Calculator II
- 227. Basic Calculator II
- 227. Basic Calculator II
- 227. Basic Calculator II
- 227. Basic Calculator II
- 227. Basic Calculator II
- 227. Basic Calculator II
- 227. Basic Calculator II**
- 227. Basic Calculator II
- 227. Basic Calculator II
- 227. Basic Calculator II
- 227. Basic Calculator II
- 227. Basic Calculator II
- 227. Basic Calculator II
- 227. Basic Calculator II
- 博通收购高通 不卖就强买?
- jq笔记
- vue 使用Slot 分发内容
- 位图(BitMap)索引
- cocos-lua学习笔记(一)下载地址
- 227. Basic Calculator II
- File类
- 串口配置的寄存器被写成一个结构体的代码
- jquery一些实用功能
- Es5.x版本研究
- python第三方库使用
- OpenCV学习笔记
- Linux深入 -- day01 Linux介绍
- Mysql 常用统计语句