首页 > 试题广场 >

给表达式添加运算符

[编程题]给表达式添加运算符
  • 热度指数:1170 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个仅包含数字的字符串 num 和一个目标值 target,在 num 的数字之间添加二元运算符 "+" , "-" 或 "*" ,返回所有能够得到目标值的表达式。

数据范围:字符串长度满足 , nums 中仅包含数字,
示例1

输入

"123",6

输出

["1+2+3","1*2*3"]
示例2

输入

"00",0

输出

["0+0","0*0","0-0"]
package main

import "strconv"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param num string字符串 
 * @param target int整型 
 * @return string字符串一维数组
*/
func addOpt( num string ,  target int ) []string {
    ans:=[]string{}
    var dfs func(string,int,int)
    dfs=func(s string,sum int,idx int){
        if idx==len(num){
            if sum==target{
                ans=append(ans,s)
            }
            return
        }
        str:=string(num[idx])
        x,_:=strconv.Atoi(str)
        dfs(s+"+"+str,sum+x,idx+1)
        dfs(s+"-"+str,sum-x,idx+1)
        dfs(s+"*"+str,sum*x,idx+1)
    }
    str:=string(num[0])
    x,_:=strconv.Atoi(str)
    dfs(str,x,1)
    return ans
}

发表于 2023-03-17 09:18:24 回复(0)

问题信息

难度:
1条回答 3381浏览

热门推荐

通过挑战的用户

查看代码