题目
思路
- 乘除先运算、减法就将数变为负数,最后所有数相加
代码
基本计数器IIclass Solution {public int calculate(String s) {char[] chars = s.toCharArray();int len = chars.length;Stack<Integer> nums = new Stack<>();char sign = '+';int num = 0;for (int i = 0; i < len; i++) {if (chars[i] >= '0') {num = num * 10 + (chars[i] - '0');}if (chars[i] < '0' && chars[i] != ' ' || i == len - 1) {if (sign == '+') {nums.push(num);} else if (sign == '-') {nums.push(-num);} else if (sign == '*' || sign == '/'){int m = sign == '*' ? nums.pop() * num : nums.pop() / num;nums.push(m);}sign = chars[i];num = 0;}}int res = 0;while (nums.size() != 0) {res += nums.pop();}return res;}}
