leetcode[227]:Basic Calculator II
来源:互联网 发布:阿里云文件上传demo 编辑:程序博客网 时间:2024/05/18 03:56
Basic Calculator II
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.
int calculate(char* s) { int stack[100000]={0}; int stack2[100000]={0}; int i,l1,l2,op; int tmp, res; res=l1=l2=op=0; for(i=0;s[i];) { if(s[i]==' ') {i++;continue;} if(s[i]=='+') {stack2[l2++]=1;i++;continue;} if(s[i]=='-') {stack2[l2++]=2;i++;continue;} if(s[i]=='*') { op=1; i++; continue; } if(s[i]=='/') { op=2; i++; continue; } tmp=0; while(s[i]>='0' && s[i]<='9') { tmp=tmp*10+s[i]-'0'; i++; } if(op==1) { tmp*=stack[--l1]; op=0; } if(op==2) { tmp=stack[--l1]/tmp; op=0; } stack[l1++]=tmp; } res=stack[0]; for(i=1;i<l1;i++) { if(stack2[i-1]==1) res+=stack[i]; else res-=stack[i]; } return res;}
先计算乘除,将加减全部压栈,最后遍历一遍栈计算加减即可。但耗时比较大!待改进。
0 0
- leetcode 227 Basic Calculator II
- leetcode 227: Basic Calculator II
- Leetcode 227 Basic Calculator II
- Basic Calculator II - LeetCode 227
- 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] Basic Calculator II
- [leetcode] Basic Calculator II
- leetcode Basic Calculator II
- 【LeetCode】Basic Calculator II
- HTML5基础08----HTML5表格使用
- 用KMP算法实现strStr()
- crazyflie2.0 RCC时钟知识
- 将Latex tex文档转换成 word文档(上)
- Project Euler:Problem 93 Arithmetic expressions
- leetcode[227]:Basic Calculator II
- 第一次测试C - The Mad Numerologist
- HTML5基础09----HTML5列表的使用
- CS281: Advanced Machine Learning 第一节
- mysql命令
- 解释术语:虚拟内存、缺页中断、抖动
- 2015 Multi-University Training Contest 2 1004 Delicious Apples(HDU5303)
- 数据结构-查找
- HTML5基础10----HTML5块元素标签的使用