227 Basic Calculator II
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相关推荐
- 227. Basic Calculator II
The expression string contains only non-negative integers, +, -, *, / operators and empty spaces. Th ...
- leetcode 227. Basic Calculator II | 227. 基本计算器 II(中缀表达式求值)
题目 https://leetcode.com/problems/basic-calculator-ii/ 题解 这道题是 中缀表达式求值 的简化版(因为没有左右括号运算),不过输入的形式有两个处理起 ...
- LeetCode OJ Basic Calculator II
Basic Calculator II 题目 思路 和这个一样:Basic Calculator I 代码 class ExpressionTransformation { public:string ...
- 【LeetCode】Basic Calculator II
Basic Calculator II 问题描述 Implement a basic calculator to evaluate a simple expression string. The ex ...
- LeetCode Basic Calculator II(加减乘除计算器)
与 LeetCode Basic Calculator(用栈计算表达式的值)相似 代码如下: public class Solution {private int cal(int num1, int ...
- Basic Calculator II
该题和前面的" Basic Calculator "的处理方法一样,仅仅是增加了对"*"."/"两种运算的支持. class Solutio ...
- [Swift]LeetCode227. 基本计算器 II | Basic Calculator II
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- leetcode----227. Basic Calculator II
链接: https://leetcode.com/problems/basic-calculator-ii/ 大意: 实现一个计算器.给定一个字符串s,字符串s中的字符由'0'-'9'的数字以及'+' ...
- 227. 基本计算器 II
227. 基本计算器 II Ideas 对于表达式计算的问题,一般第一个想到的就是stack,每次从表达式中拿一个值放到stack中,如果是乘除,因为优先级比较高,所以先计算,然后把计算结果appen ...
最新文章
- c语言程序设计01,c语言程序设计01.doc
- python坐标柱染色_Python matplotlib:在数据坐标中定位colorbar
- 【ESSD技术解读】ESSD Auto PL规格,引领IO性能弹性新方向
- 错误管道反应:Paul Szymkowiak和上下文驱动的思想家如何交谈
- python操作SQL
- error LNK2001: unresolved external symbol QtCored.lib	using staic Qt lib
- java实现文件上传(使用FromData)
- 《MYSQL必知必会》—19~21.插入、更新、删除数据;创建、更新、删除表
- Effective C# 原则12:选择变量初始化而不是赋值语句
- 真正的卡巴斯基key 教你使用正版KASPERSKY授权到2008年
- 青春日志html,关于青春日记模板锦集四篇
- Python深度学习笔记(三)二分类模型
- 计算机二级考试加油作文,为中考而加油作文(精选10篇)
- springboot-3-整合ehcache缓存
- 台州银行笔试考什么_历年台州银行笔试和面试经验分享
- JS:酷酷的圆轨迹唤动菜单
- 用计算机做图画ppt,ppt怎么做?手机电脑超全PPT制作教程_教你做出完整的PPT
- 好心情精神心理医生:出现这些早期症状,你可能得了双相情感障碍
- 服务网关Zuul初探
- 饥荒联机版MOD-杀生丸介绍