栈系列一>基本计算器II
目录
- 题目:
- 解析:
- 代码:
题目:
链接: link
解析:
代码:
class Solution {public int calculate(String _s) {//isDigit方法: 判断字符是否是数字char[] s = _s.toCharArray();int n = s.length;int i = 0;char op = '+';Deque<Integer> st = new ArrayDeque<>();while(i < n){if(s[i] == ' ') i++;else if(Character.isDigit(s[i])) {int tmp = 0;while(i < n && Character.isDigit(s[i])){tmp = tmp * 10 + (s[i] - '0');i++;}if(op == '+') st.push(tmp);else if(op == '-') st.push(-tmp);else if(op == '*') st.push(st.pop() * tmp);else if(op == '/') st.push(st.pop() / tmp);}else {op = s[i];i++;}}int ret = 0;while(!st.isEmpty()){ret += st.pop();}return ret;}
}