leetcode 770 Basic Calculator IV题目解析

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 +&#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值