241. 为运算表达式设计优先级
Closed this issue · 3 comments
JalanJiang commented
- 原题链接:241. 为运算表达式设计优先级
- 预计完成时间:2019/08/20
JalanJiang commented
- 题解
- 总结:已运算符为中间点拆分子问题
- 完成时间:2019/08/20
csming1995 commented
class Solution {
public List<Integer> diffWaysToCompute(String input) {
return partition(input);
}
private List<Integer> partition(String input) {
List<Integer> result = new LinkedList<>();
if (!input.contains("+") && !input.contains("-") && !input.contains("*")) {
result.add(Integer.valueOf(input));
return result;
}
for (int i = 0; i < input.length(); i++) {
char value = input.charAt(i);
if (value == '+' || value == '-' || value == '*') {
for (int a: partition(input.substring(0, i))) {
for (int b: partition(input.substring(i + 1))) {
if (value == '+') {
result.add(a + b);
} else if (value == '-') {
result.add(a - b);
} else {
result.add(a * b);
}
}
}
}
}
return result;
}
}
csming1995 commented
class Solution {
public List<Integer> diffWaysToCompute(String input) {
return partition(input);
}
private List<Integer> partition(String input) {
List<Integer> result = new LinkedList<>();
if (!input.contains("+") && !input.contains("-") && !input.contains("*")) {
result.add(Integer.valueOf(input));
return result;
}
for (int i = 0; i < input.length(); i++) {
char value = input.charAt(i);
if (value == '+' || value == '-' || value == '*') {
for (int a: partition(input.substring(0, i))) {
for (int b: partition(input.substring(i + 1))) {
if (value == '+') {
result.add(a + b);
} else if (value == '-') {
result.add(a - b);
} else {
result.add(a * b);
}
}
}
}
}
return result;
}
}