Basic Calculator II LeetCode solution in Java
1class Solution {2public int calculate(String s) {3if (s == null || s.length() == 0) return 0;4Stack<Integer> st = new Stack<>();5int curr = 0;6char op = '+';7char[] ch = s.toCharArray();8for (int i = 0; i < s.length(); i++) {9if (Character.isDigit(ch[i])) {10curr = curr * 10 + ch[i] - '0';11}12if (!Character.isDigit(ch[i]) && ch[i] != ' ' || i == ch.length - 1) {13if (op == '+') {14st.push(curr);15} else if (op == '-') {16st.push(-curr);17} else if (op == '*') {18st.push(st.pop() * curr);19} else if (op == '/') {20st.push(st.pop() / curr);21}22op = ch[i];23curr = 0;24}25}26int sum = 0;27while (!st.isEmpty()) {28sum += st.pop();29}30return sum;31}32} // TC=o(n),SC=o(n)