func basicCalculatorIV(expression string, evalvars []string, evalints []int) []string {
index=0 //must have else commit alwalys fail however exe is right
fmt.Println(expression)
var res []string
str = expression
gEvalvars = evalvars
gEvalints = evalints
fmt.Println("before",token,index)
token = getToken()
fmt.Println("after",token,index)
res = exp()
return res
}
var token string
var str string
var index int
var gEvalvars []string
var gEvalints []int
func getToken() string {
//找出下一个符号 包括+ - * ( )digital or val
var nextToken string
if index >= len(str) {
return nextToken
}
for len(str) > 0 && str[index] == ' ' {
index++
//去除空格
}
//digital
if str[index] >= '0' && str[index] <= '9' {
//get all digital
for index < len(str) && (str[index] >= '0' && str[index] <= '9') {
nextToken += string(str[index])
index++
}
} else if str[index] >= 'a' && str[index] <= 'z' {
//var
for index < len(str) && (str[index] >= 'a' && str[index] <= 'z') {
nextToken += string(str[index])
index++
}
} else {
//+ - * ( )
switch str[index] {
case '+':
nextToken += "+"
index++
case '-':
nextToken +&#
leetcode 770 Basic Calculator IV题目解析
最新推荐文章于 2021-06-21 12:33:50 发布