class Solution {
public List<Integer> diffWaysToCompute(String input) {
List<Integer> list=new ArrayList<>();
if (input.length()==0)
return list;
boolean isNum=true;//若输入的只是一个单纯的数字
for(int i=0;i<input.length();i++){
if(Character.isDigit(input.charAt(i))) continue;
isNum=false;
List<Integer> llist=diffWaysToCompute(input.substring(0,i));
List<Integer> rlist=diffWaysToCompute(input.substring(i+1,input.length()));
for(int m:llist){//对左右两边结果的各种组合运算
for(int n:rlist){
char op=input.charAt(i);
int re=0;
switch(op){
case '+':re=m+n;break;
case '-':re=m-n;break;
case '*':re=m*n;break;
}
list.add(re);
}
}
}
if(isNum==true)
list.add(Integer.parseInt(input));
return list;
}
}
Character.isDigit()判断是不是一个数字