241. Different Ways to Add Parentheses
来源:互联网 发布:淘宝店铺域名太长了 编辑:程序博客网 时间:2024/05/31 04:03
Given a string of numbers and operators, return all possible results from computing all the different possible ways to group numbers and operators. The valid operators are+
, -
and *
.
Example 1
Input: "2-1-1"
.
((2-1)-1) = 0(2-(1-1)) = 2
Output: [0, 2]
Example 2
Input: "2*3-4*5"
(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
Output: [-34, -14, -10, -10, 10]
思路:就是一个递归求和的问题,有点归并的感觉
代码如下(已通过leetcode)
public class Solution {
public List<Integer> diffWaysToCompute(String input) {
List<Integer> list=new ArrayList<Integer>();
if(input==null ||input.length()==0) return list;
if(!input.contains("+")&&!input.contains("-")&&!input.contains("*")) {
list.add(Integer.valueOf(input));
return list;
}
for(int i=0;i<input.length();i++) {
char ops=input.charAt(i);
if(ops=='+'||ops=='-'||ops=='*') {
List<Integer> left=diffWaysToCompute(input.substring(0,i));
List<Integer> right=diffWaysToCompute(input.substring(i+1,input.length()));
for(int leftvalue:left) {
for(int rightvalue:right) {
switch(ops) {
case '+': list.add(leftvalue+rightvalue);
break;
case '-': list.add(leftvalue-rightvalue);
break;
case '*': list.add(leftvalue*rightvalue);
break;
}
}
}
}
}
return list;
}
}
- [leetcode] 241.Different Ways to Add Parentheses
- Leetcode-241.Different Ways to Add Parentheses
- 241. Different Ways to Add Parentheses LeetCode
- Leetcode- 241.Different Ways to Add Parentheses
- [LeetCode]241. Different Ways to Add Parentheses
- 241. Different Ways to Add Parentheses
- [leetcode] 241. Different Ways to Add Parentheses
- 241. Different Ways to Add Parentheses
- 241. Different Ways to Add Parentheses
- LeetCode *** 241. Different Ways to Add Parentheses
- 241. Different Ways to Add Parentheses
- 241. Different Ways to Add Parentheses
- LeetCode 241. Different Ways to Add Parentheses
- 241. Different Ways to Add Parentheses
- 241. Different Ways to Add Parentheses
- LeetCode 241. Different Ways to Add Parentheses
- LeetCode-241.Different Ways to Add Parentheses
- LeetCode 241. Different Ways to Add Parentheses
- 【dotnet跨平台】谈一谈dotnet-cli开源社区的产品持续集成
- javax.net.ssl.SSLKeyException: RSA premaster secret error 解决
- android画虚线后是实线
- php截取某个字符串之前的数据
- UVA 12096 The SetStack Computer
- 241. Different Ways to Add Parentheses
- 伪静态URLRewrite学习笔记
- Jenkins进阶系列之——14配置Jenkins用户和权限
- 电感相关知识
- javascript基础二 (DOM,BOM基础二)
- js中的parseInt和Number的区别
- java生成二维码
- IM/即时通讯
- 四两拨千斤