241. Different Ways to Add Parentheses

Posted 我的名字叫周周

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了241. Different Ways to Add Parentheses相关的知识,希望对你有一定的参考价值。

    /*
     * 241. Different Ways to Add Parentheses
     * 2016-6-18 by Mingyang
     * 这个题目刚开始的时候非常难以思考,一直在纠结如何去插,如何去计算
     * 后面参考了一下答案以后发现这个题目非常的有意思
     * 左右子串分别计算所有可能,然后全排列。
     * 左半块有一系列的结果,右板块有一系列的结果,分别选一个
     */
     public static List<Integer> diffWaysToCompute(String input) {  
            List<Integer> res = new ArrayList<Integer>();  
            for(int i=0;i<input.length();i++){  
                int c = input.charAt(i);  
                if(c==‘+‘ || c==‘-‘ || c==‘*‘) {  
                    List<Integer> leftList = diffWaysToCompute(input.substring(0,i));  
                    List<Integer> rightList = diffWaysToCompute(input.substring(i+1));  
                    for(int left : leftList){  
                        for(int right : rightList){  
                            int t = 0;  
                            switch(c){  
                                case ‘+‘: t = left + right;  
                                    break;  
                                case ‘-‘: t = left - right;  
                                    break;  
                                case ‘*‘: t = left * right;  
                                    break;  
                            }  
                            res.add(t);  
                        }  
                    }  
                }  
            }  
            if(res.size()==0){  
                res.add(Integer.valueOf(input));  
            }  
            return res;  
        }  

 

以上是关于241. Different Ways to Add Parentheses的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode241. 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