227.基本计算器II
实现一个基本的计算器来计算一个简单的字符串表达式的值。
字符串表达式仅包含非负整数,+
, -
,*
,/
四种运算符和空格
。 整数除法仅保留整数部分。
示例 1:
输入: "3+2*2" 输出: 7
示例 2:
输入: " 3/2 " 输出: 1
示例 3:
输入: " 3+5 / 2 " 输出: 5
说明:
- 你可以假设所给定的表达式都是有效的。
- 请不要使用内置的库函数
eval
。
class Solution {
public:
int calculate(string s) {
int res = 0, num = 0, n = s.size();
char op = '+';
stack<int> st;
for (int i = 0; i < n; ++i) {
if (s[i] >= '0') {
num = num * 10 + s[i] - '0';
}
if ((s[i] < '0' && s[i] != ' ') || i == n - 1) {
if (op == '+') st.push(num);
if (op == '-') st.push(-num);
if (op == '*' || op == '/') {
int tmp = (op == '*') ? st.top() * num : st.top() / num;
st.pop();
st.push(tmp);
}
op = s[i];
num = 0;
}
}
while (!st.empty()) {
res += st.top();
st.pop();
}
return res;
}
};
227.基本计算器II相关推荐
- 227. 基本计算器 II
227. 基本计算器 II Ideas 对于表达式计算的问题,一般第一个想到的就是stack,每次从表达式中拿一个值放到stack中,如果是乘除,因为优先级比较高,所以先计算,然后把计算结果appen ...
- 693. 交替位二进制数 / 227. 基本计算器 II / 264. 丑数 II
693. 交替位二进制数[简单题][每日一题] 思路:[位运算] 排除特殊情况n=1,此时return true. 将n转为二进制字符串,依次将相邻两位数字进行异或运算. 异或运算的结果为flag,如 ...
- leetcode 227. 基本计算器 II(栈)
给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值. 整数除法仅保留整数部分. 示例 1: 输入:s = "3+2*2" 输出:7 解题思路 利用两个栈,一个记录 ...
- 227. 基本计算器 II。
给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值. 整数除法仅保留整数部分. 你可以假设给定的表达式总是有效的.所有中间结果将在 [-231, 231 - 1] 的范围内. 注意: ...
- leetcode 227. Basic Calculator II | 227. 基本计算器 II(中缀表达式求值)
题目 https://leetcode.com/problems/basic-calculator-ii/ 题解 这道题是 中缀表达式求值 的简化版(因为没有左右括号运算),不过输入的形式有两个处理起 ...
- [leetcode]227. 基本计算器 II
class Solution {// 算法描述如下: // (1)操作符栈初始化, 将结束符′#′进栈, 然后读入中缀表达式字符流的首字符ch . // (2)重复执行以下步骤, 直到ch =′#′, ...
- 【LeetCode - 227】基本计算器 II(栈)
https://leetcode-cn.com/problems/basic-calculator-ii/ 给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值. 整数除法仅保留整数部 ...
- LetCode: 227. 简单计算器2
提示 LintCode中的相关算法题实现代码,可以在我的GithHub中下载. 题目需求 实现一个基本的计算器来计算一个简单的字符串表达式的值. 字符串表达式仅包含非负整数,+, - ,*,/ 四种运 ...
- leetcode题解227-基本计算器 II
问题描述 给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值. 整数除法仅保留整数部分. 示例 1: 输入:s = "3+2*2" 输出:7 示例 2: 输入:s ...
- [Swift]LeetCode227. 基本计算器 II | Basic Calculator II
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
最新文章
- 70. Climbing Stairs
- 第一类Stirling数和第二类Stirling
- 如何彻底卸载MySQL
- 从零开始学习Hadoop--第2章 第一个MapReduce程序
- 一图看懂云栖大会「云原生」发布
- nginx nodejs环境配置_nodejs + nginx + ECS阿里云服务器环境设置
- LongAdder,AtomicIntegerFieldUpdater深入研究
- 老板说,我请你来,不是叫你无脑拷贝的,竟然在线上搞出这么大的一个BUG......
- 190706每日一句
- python面向对象实例王者荣耀_python王者荣耀
- matlab计算轮廓曲率半径,用matlab求出最小曲率半径曲线方程实例
- 二阶系统根轨matlab,自控-二阶系统Matlab仿真.doc
- 微服务架构设计思维导图总结
- 分享个一拳超人辅助脚本,自动挂机刷金币/经验/副本工具
- linux开机不运行桌面快捷方式,Android 开机自动运行和添加删除桌面快捷方式
- 入门OSPF就这一篇足够了
- 华为智慧屏 鸿蒙如何,抛开鸿蒙 华为智慧屏V65作为电视合格吗?
- 用户增长——CLV用户生命周期价值CLTV 笔记(一)
- 程序猿表白情诗代码,赶紧收藏一下
- 上周热点回顾(1.7-1.13)