Basic Calculator
来源:互联网 发布:矩阵系统 编辑:程序博客网 时间:2024/04/28 12:46
Implement a basic calculator to evaluate a simple expression string.
The expression string may contain open (
and closing parentheses )
, the plus +
or minus sign -
, non-negative integers and empty spaces.
You may assume that the given expression is always valid.
Some examples:
"1 + 1" = 2" 2-1 + 2 " = 3"(1+(4+5+2)-3)+(6+8)" = 23
Note: Do not use the eval
built-in library function.
class Solution {public: int calculate(string s) { int n = s.size(); if (n < 1) { return 0; } s = '(' + s + ')'; n += 2; int result = 0; stack<char> symbol; stack<int> num; int value = 0; bool numFound = false; for (int i = 0; i < n; i++) { if (s[i] <= '9' && s[i] >= '0') { numFound = true; value = value*10 + s[i] - '0'; continue; } else if (numFound) { num.push(value); value = 0; numFound = false; } if (s[i] == ')') { int temp = 0; while (true) { int v = num.top(); num.pop(); char w = symbol.top(); symbol.pop(); if (w == '+') { temp += v; } else if (w == '-') { temp -= v; } else { temp += v; num.push(temp); break; } } if (i == n-1) { result = temp; break; } } else if (s[i] == '+' || s[i] == '-' || s[i] == '(') { symbol.push(s[i]); } } return result; }};
0 0
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- 一个强大的LogParser的UI工具--日志分析工具
- php开启gzip压缩节省带宽
- Linux 内核基础--List使用方法
- 史上最全Vim快捷键键位图 -- 入门到进阶
- Windows 7下使用Visual C++ 2010编译Python的cx_Oracle库
- Basic Calculator
- 10分钟学会理解和解决MySQL乱码问题
- 在Mac电脑上安装多版本的Python
- Magento Local Module 会覆盖 Community Module
- UICollectionView的基本使用
- Unity与Android互调
- Unity与android互调
- Unity中得Time类
- Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)