LeetCode 227. 基本计算器 II(Basic Calculator II)
2024-09-21 01:28:40
227. 基本计算器 II
227. Basic Calculator II
题目描述
实现一个基本的计算器来计算一个简单的字符串表达式的值。
字符串表达式仅包含非负整数,+,-,*,/ 四种运算符和空格。整数除法仅保留整数部分。
LeetCode227. Basic Calculator II中等
示例 1:
输入: "3+2\*2"
输出: 7
输出: 7
示例 2:
输入: " 3/2 "
输出: 1
输出: 1
示例 3:
输入: " 3+5 / 2 "
输出: 5
输出: 5
说明:
- 你可以假设所给定的表达式都是有效的。
- 请不要使用内置的库函数 eval。
Java 实现
import java.util.Stack;
class Solution {
public int calculate(String s) {
int len;
if (s == null || (len = s.length()) == 0) {
return 0;
}
int num = 0;
char sign = '+';
Stack<Integer> stack = new Stack<>();
for (int i = 0; i < len; i++) {
if (Character.isDigit(s.charAt(i))) {
num = num * 10 + s.charAt(i) - '0';
}
if (!Character.isDigit(s.charAt(i)) && ' ' != s.charAt(i) || i == len - 1) {
if (sign == '+') {
stack.push(num);
}
if (sign == '-') {
stack.push(-num);
}
if (sign == '*') {
stack.push(stack.pop() * num);
}
if (sign == '/') {
stack.push(stack.pop() / num);
}
sign = s.charAt(i);
num = 0;
}
}
int res = 0;
for (int x : stack) {
res += x;
}
return res;
}
}
相似题目
- 224. 基本计算器 Basic Calculator
- 282. 给表达式添加运算符 Expression Add Operators
- 772. 基本计算器 III Basic Calculator III
参考资料
- https://leetcode.com/problems/basic-calculator-ii/
- https://leetcode-cn.com/problems/basic-calculator-ii/
最新文章
- php基础的一点注意事项
- android 开发 程序中下载安装APK文件 问题汇总 解析程序包时出现问题
- Could not load file or assembly &#39;Microsoft.SqlServer.Management.Sdk.Sfc, Version=11.0.0.0 系统找不到指定的文件。
- 在一周内学会使用 AUTO CAD
- ML 01、机器学习概论
- selenium太有爱,我已离不开!!!
- ajax提交写法
- android脚步---不同界面之间切换
- Java基础笔记12
- easyUI拖动课程进课程表
- 微信小程序图片宽100%显示并且不变形
- 解决win10不显示coreldraw x4/5/6菜单栏
- CSUOJ 1011 Counting Pixels
- 马老师 Linux基础入门
- piblog 0.2
- java 多线程 1 “常用的实现多线程的2种方式”:Thread 和 Runnable
- 动态横向(水平)合并GridView数据行DataRow的列
- 解决获取View的width和Height为0的4种方法
- centos创建本地yum仓库
- python--如何在线上环境优雅的修改配置文件?