We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent bc61bec commit f1cee26Copy full SHA for f1cee26
golang/basic_calculator/basic_calculator.go
@@ -0,0 +1,32 @@
1
+package basic_calculator
2
+
3
+func calculate(s string) int {
4
+ ret := 0
5
+ stack := []int{}
6
+ sign := 1
7
+ for i := 0; i < len(s); i++ {
8
+ if s[i] >= '0' && s[i] <= '9' {
9
+ num := 0
10
+ for ; i < len(s) && s[i] >= '0' && s[i] <= '9'; i++ {
11
+ num = 10*num + int(s[i]-'0')
12
+ }
13
+ ret += sign * num
14
+ i--
15
+ } else if s[i] == '+' {
16
+ sign = 1
17
+ } else if s[i] == '-' {
18
+ sign = -1
19
+ } else if s[i] == '(' {
20
+ stack = append(stack, ret, sign)
21
+ ret = 0
22
23
+ } else if s[i] == ')' {
24
+ signTmp := stack[len(stack)-1]
25
+ retTmp := stack[len(stack)-2]
26
+ stack = stack[:len(stack)-2]
27
+ ret = signTmp*ret + retTmp
28
29
30
31
+ return ret
32
+}
0 commit comments