# 给表达式添加运算符

给定一个仅包含数字 0-9 的字符串 num 和一个目标值整数 target ,在 num 的数字之间添加 二元 运算符(不是一元)+- 或 * ,返回所有能够得到目标值的表达式。

 

示例 1:

输入: num = "123", target = 6
输出: ["1+2+3", "1*2*3"] 

示例 2:

输入: num = "232", target = 8
输出: ["2*3+2", "2+3*2"]

示例 3:

输入: num = "105", target = 5
输出: ["1*0+5","10-5"]

示例 4:

输入: num = "00", target = 0
输出: ["0+0", "0-0", "0*0"]

示例 5:

输入: num = "3456237490", target = 9191
输出: []

 

提示:

## template ```python class Solution: def __init__(self): self.size = 0 self.num = [] self.now = [] self.sign = [] def addOperators(self, num: str, target: int) -> List[str]: if not num: return [] self.size = len(num) self.num = num self.now.append(num[0]) self.dfs(0, num[0] == "0") ans = [] for ss in self.sign: if eval(ss) == target: ans.append(ss) return ans def dfs(self, i, zero_start): if i == self.size - 1: self.sign.append("".join(self.now)) else: self.now.extend(["+", self.num[i + 1]]) self.dfs(i + 1, self.num[i + 1] == "0") self.now.pop() self.now.pop() self.now.extend(["-", self.num[i + 1]]) self.dfs(i + 1, self.num[i + 1] == "0") self.now.pop() self.now.pop() self.now.extend(["*", self.num[i + 1]]) self.dfs(i + 1, self.num[i + 1] == "0") self.now.pop() self.now.pop() if not zero_start: self.now.extend([self.num[i + 1]]) self.dfs(i + 1, False) self.now.pop() ``` ## 答案 ```python ``` ## 选项 ### A ```python ``` ### B ```python ``` ### C ```python ```