Basic Calculator II LeetCode solution in Java

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

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0