zoukankan      html  css  js  c++  java
  • 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;  
            }  
  • 相关阅读:
    第四章 JavaScript面向对象
    第二章 JavaScript操作DOM2
    第三章 JavaScript操作DOM
    第二章 JavaScript操作BOM2
    第二章 JavaScript操作BOM
    第一章 JavaScript基础
    java面向对象总结1
    java面向对象总结
    第七章 用表组织数据
    2020.10.22
  • 原文地址:https://www.cnblogs.com/zmyvszk/p/5597352.html
Copyright © 2011-2022 走看看