Basic Calculator II
来源:互联网 发布:软件平台验收报告 编辑:程序博客网 时间:2024/05/18 00:45
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_help(int left, char symbol, int right) { switch(symbol) { case '*': return left * right; case '/': return left / right; default: return 0; } } int calculate(string s) { int n = s.length(); if (n < 1) { return 0; } int result = 0; stack<int> value; stack<char> symbol; symbol.push('+'); for (int i = 0; i < n;) { if (s[i] == '+' || s[i] == '-' || s[i] == '*' || s[i] == '/') { symbol.push(s[i]); i++; } else if (s[i] == ' ') { i++; } else { int right = 0; while (i < n && s[i] <= '9' && s[i] >= '0') { right = right*10 + s[i]-'0'; i++; } if (!symbol.empty() && (symbol.top() == '*' || symbol.top() == '/')) { right = calculate_help(value.top(), symbol.top(), right); value.pop(); symbol.pop(); } value.push(right); } } while (!symbol.empty()) { int temp = value.top(); if (symbol.top() == '-') { temp = -temp; } result += temp; value.pop(); symbol.pop(); } return result; }};
0 0
- Basic Calculator & Basic Calculator II
- [LeetCode] Basic Calculator II
- Basic Calculator II
- [leetcode] Basic Calculator II
- leetcode Basic Calculator II
- Basic Calculator II
- 227Basic Calculator II
- 【LeetCode】Basic Calculator II
- Basic Calculator II
- [Leetcode]Basic Calculator II
- Basic Calculator II
- LeetCode227:Basic Calculator II
- Basic Calculator II
- Basic Calculator II
- Basic Calculator II(**)
- LeetCode Basic Calculator II
- [Leetcode]Basic Calculator II
- Basic Calculator II
- sql学习笔记(24)----------MySQL的事务处理详解
- 为ThinkPad T420增加一根4G内存
- C语言回顾(七、多重指针,argc,argv,动态内存分配,void指针,const)——iOS开发基础
- 00-自测3. 数组元素循环右移问题 (20)
- 无向图 广度优先遍历 c语言实现
- Basic Calculator II
- iOS开发系列--Objective-C之KVC、KVO
- FreeRTOS学习笔记-1-Coding Standard and Style Guide(编码标准和风格)
- Base64的加密解密
- Bower : ENOGIT git is not installed or not in the PATH
- SQL 某月份用该月份的前三位英文表示
- 《TCP/IP入门经典》——网络访问层
- Servlet内部跳转
- NSNotificationCenter和消息推送的学习