题目:
给你一个由数字和运算符组成的字符串expression
,按不同优先级组合数字和运算符,计算并返回所有可能组合的结果。你可以按任意顺序返回答案。
生成的测试用例满足其对应输出值符合 32 位整数范围,不同结果的数量不超过104
。
示例 1:
输入:expression = "2-1-1"
输出:[0,2]
解释:
((2-1)-1) = 0
(2-(1-1)) = 2
示例 2:
输入:expression = "2*3-4*5"
输出:[-34,-14,-10,-10,10]
解释:
(2*(3-(4*5))) = -34
((2*3)-(4*5)) = -14
((2*(3-4))*5) = -10
(2*((3-4)*5)) = -10
(((2*3)-4)*5) = 10
代码实现:
class Solution {
static final int ADDITION = -1;
static final int SUBTRACTION = -2;
static final int MULTIPLICATION = -3;
public List diffWaysToCompute(String expressi服务器托管网on) {
List ops = new ArrayList();
for (int i = 0; i [][] dp = new List[ops.size()][ops.size()];
for (int i = 0; i ();
}
}
return dfs(dp, 0, ops.size() - 1, ops);
}
public List dfs(List[][] dp, int l, int r, List ops) {
if (dp[l][r].isEmpty()) {
if (l == r) {
dp[l][r].add(ops.get(l));
} else {
for服务器托管网 (int i = l; i left = dfs(dp, l, i, ops);
List right = dfs(dp, i + 2, r, ops);
for (int lv : left) {
for (int rv : right) {
if (ops.get(i + 1) == ADDITION) {
dp[l][r].add(lv + rv);
} else if (ops.get(i + 1) == SUBTRACTION) {
dp[l][r].add(lv - rv);
} else {
dp[l][r].add(lv * rv);
}
}
}
}
}
}
return dp[l][r];
}
}
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
开始 mock一个用于拦截ajax请求,并返回模拟数据的库。主要让前端独立于后端进行开发,通过 pnpm add mockjs 来进行安装 基础 初窥门径 var data = Mock.mock({ // 属性 list 的值是一个数组,其中含有 1 到 1…