Basic Calculator
来源:互联网 发布:汽车图解软件有没有 编辑:程序博客网 时间:2024/04/28 21:02
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.
{public:int calculate(string s) {stack<int>num;stack<char>opera;int res = 0;for (auto i = s.begin(); i != s.end(); i++){int tmp = 0;if (*i == ' ')continue;if (*i >= '0' && *i <= '9'){for (int tmp2 = 0; *i >= '0' && *i <= '9';){tmp2 *= 10;tmp2 += *i - '0';if (i + 1 == s.end() || *(i + 1) <'0' || *(i + 1) > '9'){num.push(tmp2);break;}else++i;}continue;}if (*i != ')')opera.push(*i);else{while (opera.top() != '('){opera.top() == '+' ? tmp += num.top() : tmp -= num.top();opera.pop();num.pop();}tmp += num.top();num.pop();num.push(tmp);opera.pop();}}while (!num.empty()){if (!opera.empty()){opera.top() == '+' ? res += num.top() : res -= num.top();opera.pop();}else{res += num.top();}num.pop();}return res;}};
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
- Ubuntu14.04 (x64) 下hadoop2.5.0单节点安装与测试
- 【基础】C++设计模式之单例模式
- C++中使用new定义的变量和不使用new定义的变量区别
- 项目打包。重启的语句
- FastDFS之Storage程序框架
- Basic Calculator
- MVC控件解析
- Fragment里面的ListView的item点击没反应
- spring问题:Error creating bean with name 'articleController': Injection of autowired dependencies fail
- Gnome3 快捷键
- 巨头间的战争,我眼中的的“淘宝为什么屏蔽百度抓取”
- 初学python------写一个心理测试
- FastDFS之添加机器同步
- 海思android4.4 SDK编译Latin输入法