This commit is contained in:
苏尹岚
2021-02-24 09:43:43 +08:00
parent e106a982a1
commit 39c1c304ee
4 changed files with 51 additions and 47 deletions

View File

@@ -8,6 +8,8 @@ import (
"fmt"
"math"
"sort"
"strconv"
"strings"
"testing"
"git.rosy.net.cn/baseapi/utils"
@@ -218,56 +220,52 @@ func TestUpdateExpand(t *testing.T) {
}
func TestUploadImageNew(t *testing.T) {
fmt.Println(calculate("22+23*2/22"))
fmt.Println(calculate("1 - (2-(1-3))"))
}
//给定一个包含正整数、加(+)、减(-)、乘(*)、除(/)的算数表达式(括号除外),计算其结果。
//表达式仅包含非负整数,+ - */ 四种运算符和空格  。 整数除法仅保留整数部分。
func calculate(s string) int {
// result := 0
// s = strings.Trim(s, " ")
// count := map[string]func(a, b int) int{
// "+": func(a, b int) int {
// return a + b
// },
// "-": func(a, b int) int {
// return a - b
// },
// "*": func(a, b int) int {
// return a * b
// },
// "/": func(a, b int) int {
// return a / b
// },
// }
// var str []string
// mem := ""
// for k, v := range s {
// if _, ok := count[string(v)]; !ok {
// mem = mem + string(v)
// } else {
// str = append(str, mem)
// mem = ""
// str = append(str, string(v))
// }
// if k == len(s)-1 {
// str = append(str, mem)
// }
// }
// count := func(s []string) (r []string) {
// return r
// }
// for k, v := range str {
// if v == "*" || v == "/" {
// if k1, err := strconv.Atoi(str[k-1]); err == nil {
// if k2, err := strconv.Atoi(str[k+1]); err == nil {
// result += count[v](k1, k2)
// }
// }
// }
// }
s = "+" + strings.ReplaceAll(s, " ", "")
count := map[string]int{
"+": 1,
"(": 1,
")": 1,
"-": 1,
}
var str []string
mem := ""
for k, v := range s {
if _, ok := count[string(v)]; !ok {
mem = mem + string(v)
} else {
if mem != "" {
str = append(str, mem)
}
mem = ""
str = append(str, string(v))
}
if k == len(s)-1 {
str = append(str, mem)
}
}
changeNum := func(s string) int {
i, _ := strconv.Atoi(s)
return i
}
var ss []int
for k, v := range str {
switch v {
case "+":
ss = append(ss, changeNum(str[k+1]))
case "-":
ss = append(ss, -changeNum(str[k+1]))
}
}
sum := 0
for _, v := range ss {
sum += v
}
return 1
}