Leetcode 227. 基本计算器 II - 问题解决
最编程
2024-03-07 19:29:25
...
此题很容易想到用栈来解 但我第一想法并不用栈
我的想法是先把 * 和 / 运算全都计算出来
在顺序进行加减法
此题有诸多细节问题, 下面将一一列举
- 整数的读取
我们需要将连在一起的个数字都读取到一块
private int nextNumber() {
int num = s.charAt(i) - '0';
while (i + 1 < s.length() && Character.isDigit(s.charAt(i + 1)))
num = num * 10 + s.charAt(++i) - '0';
return num;
}
- 空格的处理
在处理 * 或 / 下一个数字时会存在遇到空格的情况
while (s.charAt(++i) == ' ');
- 当经行了一次乘除计算之后需要把指针后移
numbers.remove(numbers.size() - 2);
具体代码参上
好的!本次分享到这就结束了
如果对铁汁你有帮助的话,记得点赞????+收藏⭐️+关注➕
我在这先行拜谢了:)
原题链接
推荐阅读
-
LeetCode] 动态编程 - 95.动态编程 - 95.不同的二叉搜索树 II(附完整 Python/C++ 代码) - 基本思想
-
Python | Leetcode Python 问题解决工具 #454 四数相加 II - 问题解决工具:
-
Python | Leetcode Python 问题解决 #240 搜索二维矩阵 II - 问题解决:
-
Java | Leetcode Java 问题解决 Question 63 Different Paths II - Problem Solving:
-
LeetCode:224.基本计算器 + 模拟 + 堆栈
-
Leetcode 227. 基本计算器 II - 问题解决
-
简化LeetCode 224题的基本计算器表达式