zoukankan      html  css  js  c++  java
  • [leedcode 241] Different Ways to Add Parentheses

    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]

    public class Solution {
        public List<Integer> diffWaysToCompute(String input) {
            //递归思想,遇到运算符,就对左右两边进行递归,然后对结果进行组合
            List<Integer> res=new ArrayList<Integer>();
            for(int i=0;i<input.length();i++){
                char c=input.charAt(i);
                if(!Character.isDigit(c)){
                   List<Integer> left=diffWaysToCompute(input.substring(0,i));
                   List<Integer> right=diffWaysToCompute(input.substring(i+1));
                   for(int k=0;k<left.size();k++){
                       for(int j=0;j<right.size();j++){
                           switch(c){
                               case '+':
                                   res.add(left.get(k)+right.get(j));
                                   break;
                               case '-':
                                   res.add(left.get(k)-right.get(j));
                                   break;
                               case '*':
                                   res.add(left.get(k)*right.get(j));
                                   break;
                               
                           }
                       }
                   }
                }
            }
            if(res.isEmpty()) res.add(Integer.valueOf(input));//注意单个数字的输入,比如:1,此时需要特殊判断
            return res;
        }
    }
  • 相关阅读:
    分享一下用终端的命令来恢复丢失的硬盘分区表 (转)
    Smart Link
    underrun || overrun
    mtr命令详解诊断网络路由
    tracert traceroute
    OE1、OE2、ON1、ON2路由有什么区别?
    GRE tunnel 2
    【SAP HANA】新建账户和数据库(2)
    【SAP HANA】SAP HANA开篇(1)
    入职一周
  • 原文地址:https://www.cnblogs.com/qiaomu/p/4714253.html
Copyright © 2011-2022 走看看