博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Basic Calculator II
阅读量:6376 次
发布时间:2019-06-23

本文共 1794 字,大约阅读时间需要 5 分钟。

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.

1 class Solution { 2 public: 3     int calculate(string s) { 4         stack
num; 5 stack
symbol; 6 symbol.push('+'); 7 int n; 8 n=s.length(); 9 int right;10 if(n<1) return -1;11 int i;12 for(i=0;i
='0'&&s[i]<='9')25 {26 right=right*10+(s[i]-'0');27 i++;28 }29 if((!symbol.empty())&&(symbol.top()=='*'||symbol.top()=='/'))30 {31 right=cal_helper(num.top(),right,symbol.top());32 num.pop();33 symbol.pop();34 }35 num.push(right);36 }37 }38 int res=0;39 char sym;40 int left;41 while(!symbol.empty())42 {43 left=num.top();44 sym=symbol.top();45 if(sym=='-')46 left=-left;47 num.pop();48 symbol.pop();49 res+=left;50 }51 return res;52 }53 private:54 int cal_helper(int left, int right, char s)55 {56 57 switch(s)58 {59 case '*':return left*right;60 case '/':return left/right;61 default:return 0;62 }63 64 }65 };

 

转载地址:http://oljqa.baihongyu.com/

你可能感兴趣的文章
信用卡欺诈行为逻辑回归数据分析-大数据ML样本集案例实战
查看>>
摸索小数转为二进制的机制,探讨为什么js计算的小数有个尾巴
查看>>
将Java应用部署到SAP云平台neo环境的两种方式
查看>>
JS引擎执行机制
查看>>
Node脚手架编写初学者教程
查看>>
08_Node js 工具模块 util
查看>>
手把手教你如何安装水晶易表——靠谱的安装教程
查看>>
Python PyCharm编辑器配置和使用
查看>>
Python单例模式(Singleton)的N种实现
查看>>
requirejs的插件介绍与制作
查看>>
SpringBoot整合Angular应用第二弹-配置支持Angular
查看>>
Facebook、纽约大学利用机器学习5分钟搞定核磁共振检查
查看>>
221. Maximal Square
查看>>
MySQL基础
查看>>
机器学习A-Z~支持向量机
查看>>
PAT A1010 二分进制结合重点题
查看>>
LeetCode35.搜索插入位置 JavaScript
查看>>
数据结构java版之大O表示法
查看>>
DOM事件全面总结
查看>>
CSS3径向渐变radial-gradient实现波浪边框和内倒角
查看>>