Skip to content

Commit b0d6878

Browse files
authored
227. Basic Calculator II
1 parent f917a49 commit b0d6878

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

227. Basic Calculator II.kt

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
class Solution {
2+
fun calculate(s: String): Int {
3+
val stack = mutableListOf<Int>()
4+
var num = 0
5+
var sign = '+'
6+
7+
for (char in s) {
8+
if (char.isDigit()) {
9+
num = num * 10 + (char - '0')
10+
} else if (char != ' ') {
11+
when (sign) {
12+
'+' -> stack.add(num)
13+
'-' -> stack.add(-num)
14+
'*' -> stack.add(stack.removeAt(stack.size - 1) * num)
15+
'/' -> stack.add(stack.removeAt(stack.size - 1) / num)
16+
}
17+
sign = char
18+
num = 0
19+
}
20+
}
21+
22+
when (sign) {
23+
'+' -> stack.add(num)
24+
'-' -> stack.add(-num)
25+
'*' -> stack.add(stack.removeAt(stack.size - 1) * num)
26+
'/' -> stack.add(stack.removeAt(stack.size - 1) / num)
27+
}
28+
return stack.sum()
29+
}
30+
}

0 commit comments

Comments
 (0)