题目
给定一个仅包含数字0-9
的字符串num
和一个目标值整数target
,在num
的数字之间添加二元运算符(不是一元)+
、-
或*
,返回所有能够得到target
的表达式。
注意,返回表达式中的操作数不应该包含前导零。
示例 1:
num =
示例2:
num =
num =
代码实现
class Solution {
int n;
String num;
int target;
List ans;
public List addOperators(String num, int target) {
this.n = num.length();
this.num = num;
this.target = target;
this.ans = new ArrayList();
StringBuffer expr = new StringBuffer();
backtrack(expr, 0, 0, 0);
return ans;
}
public void backtrack(StringBuffer expr, int i, long res, long mul) {
if (i == n) {
if (res == target) {
ans.add(expr.t服务器托管网oString());
}
return;
}
int signIndex = expr.length();
if (i > 0) {
expr服务器托管网.append(0); // 占位,下面填充符号
}
long val = 0;
// 枚举截取的数字长度(取多少位),注意数字可以是单个 0 但不能有前导零
for (int j = i; j
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
震惊!谣言吧!求辟谣!默哀! 左耳朵耗子,在程序员这个群体里应该属于 GOAT 的存在了,虽然每个人心目中都有自己的 GOAT,但耗子叔的影响力可以说是有目共睹。 我也是在技术群刷到这张图片的,相信大多数小伙伴和我一样:震惊!谣言吧!求辟谣!默哀! 希望大家都…