aa
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user