1 题目

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.Example 1:Input: "3+2*2"
Output: 7
Example 2:Input: " 3/2 "
Output: 1
Example 3:Input: " 3+5 / 2 "
Output: 5
Note:You may assume that the given expression is always valid.
Do not use the eval built-in library function.

2 尝试解

class Solution {
public:int calculate(string s) {s = '+' + s;stack<int> num;map<char,int> order{{'+',1},{'-',1},{'*',2},{'/',2}};for(int i = 0; i < s.size(); i++){if(s[i] ==' ') continue;if(order.count(s[i])!=0){char op = s[i];i++;string temp = "";while(s[i] == ' ' ||(s[i] >= '0' && s[i] <= '9')){temp+=s[i];i++;}i--;int num2 = atoi(temp.c_str());switch (op){case '+': num.push(num2); break;case '-': num.push(-num2); break;case '*': num.top() *= num2; break;case '/': num.top() /= num2; break;}}}int result = 0;while(!num.empty()){result += num.top();num.pop();}return result;}
};

3 标准解

int calculate(string s) {istringstream in('+' + s + '+');long long total = 0, term = 0, n;char op;while (in >> op) {if (op == '+' or op == '-') {total += term;in >> term;term *= 44 - op;} else {in >> n;if (op == '*')term *= n;elseterm /= n;}}return total;
}

227 Basic Calculator II相关推荐

  1. 227. Basic Calculator II

    The expression string contains only non-negative integers, +, -, *, / operators and empty spaces. Th ...

  2. leetcode 227. Basic Calculator II | 227. 基本计算器 II(中缀表达式求值)

    题目 https://leetcode.com/problems/basic-calculator-ii/ 题解 这道题是 中缀表达式求值 的简化版(因为没有左右括号运算),不过输入的形式有两个处理起 ...

  3. LeetCode OJ Basic Calculator II

    Basic Calculator II 题目 思路 和这个一样:Basic Calculator I 代码 class ExpressionTransformation { public:string ...

  4. 【LeetCode】Basic Calculator II

    Basic Calculator II 问题描述 Implement a basic calculator to evaluate a simple expression string. The ex ...

  5. LeetCode Basic Calculator II(加减乘除计算器)

    与 LeetCode Basic Calculator(用栈计算表达式的值)相似 代码如下: public class Solution {private int cal(int num1, int ...

  6. Basic Calculator II

    该题和前面的" Basic Calculator "的处理方法一样,仅仅是增加了对"*"."/"两种运算的支持. class Solutio ...

  7. [Swift]LeetCode227. 基本计算器 II | Basic Calculator II

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  8. leetcode----227. Basic Calculator II

    链接: https://leetcode.com/problems/basic-calculator-ii/ 大意: 实现一个计算器.给定一个字符串s,字符串s中的字符由'0'-'9'的数字以及'+' ...

  9. 227. 基本计算器 II

    227. 基本计算器 II Ideas 对于表达式计算的问题,一般第一个想到的就是stack,每次从表达式中拿一个值放到stack中,如果是乘除,因为优先级比较高,所以先计算,然后把计算结果appen ...

最新文章

  1. c语言程序设计01,c语言程序设计01.doc
  2. python坐标柱染色_Python matplotlib:在数据坐标中定位colorbar
  3. 【ESSD技术解读】ESSD Auto PL规格,引领IO性能弹性新方向
  4. 错误管道反应:Paul Szymkowiak和上下文驱动的思想家如何交谈
  5. python操作SQL
  6. error LNK2001: unresolved external symbol QtCored.lib using staic Qt lib
  7. java实现文件上传(使用FromData)
  8. 《MYSQL必知必会》—19~21.插入、更新、删除数据;创建、更新、删除表
  9. Effective C# 原则12:选择变量初始化而不是赋值语句
  10. 真正的卡巴斯基key 教你使用正版KASPERSKY授权到2008年
  11. 青春日志html,关于青春日记模板锦集四篇
  12. Python深度学习笔记(三)二分类模型
  13. 计算机二级考试加油作文,为中考而加油作文(精选10篇)
  14. springboot-3-整合ehcache缓存
  15. 台州银行笔试考什么_历年台州银行笔试和面试经验分享
  16. JS:酷酷的圆轨迹唤动菜单
  17. 用计算机做图画ppt,ppt怎么做?手机电脑超全PPT制作教程_教你做出完整的PPT
  18. 好心情精神心理医生:出现这些早期症状,你可能得了双相情感障碍
  19. 服务网关Zuul初探
  20. 饥荒联机版MOD-杀生丸介绍

热门文章

  1. 【现代简约黑白灰】与品质生活不期而遇!
  2. java api是什么意思?
  3. webshell免杀的一些学习和思考——以PHP为例
  4. python3多线程断点下载_python支持断点续传的多线程下载示例 -电脑资料
  5. 渣浆泵叶轮逆转的危害,不可小觑!
  6. 临时笔记 日志 杂记
  7. JavaScript是一门什么样的语言,它有哪些特点?
  8. Linux下用户态mktime实现参考
  9. 静力学概论|力系的简化
  10. struts.* 基础(by cju)