美文网首页程序员
力扣 282 给表达式添加运算符

力扣 282 给表达式添加运算符

作者: zhaojinhui | 来源:发表于2020-08-27 01:15 被阅读0次

题意:给定一个数字字符串和指定的值,对字符串添加+,-,*来获得指定值

思路:递归遍历每一个数的每一个符号组合

思想:数学方法

复杂度:时间O(nn),空间O(n)

class Solution {
    List<String> res = new ArrayList();
    public List<String> addOperators(String num, int target) {
        get(new StringBuilder(), 0, num, 0, 0, (long) target);
        return res;
    }
    
    void get(StringBuilder temp, int index, String num, long pre, long sum, long target) {
        if(index == num.length() && sum == target) {
            res.add(temp.toString());
            return;
        }
        int len = temp.length();
        for(int i=index;i<num.length();i++) {
            if(i>index && num.charAt(index) == '0')
                return;
            long cur = Long.parseLong(num.substring(index, i+1));
            if(cur > Integer.MAX_VALUE)
                return;
            temp.setLength(len);
            if(temp.length() == 0) {
                get(temp.append(cur), i+1, num, cur, cur, target);
            } else {
                get(temp.append("+").append(cur), i+1, num, cur, sum + cur, target);
                temp.setLength(len);
                get(temp.append("-").append(cur), i+1, num, -cur, sum - cur, target);
                temp.setLength(len);
                get(temp.append("*").append(cur), i+1, num, pre*cur, sum - pre + pre*cur, target);
            }
        }
    }
}

相关文章

  • 力扣 282 给表达式添加运算符

    题意:给定一个数字字符串和指定的值,对字符串添加+,-,*来获得指定值 思路:递归遍历每一个数的每一个符号组合 思...

  • 给表达式添加运算符

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/expres...

  • chimier-c++-day02

    运算符 算术运算符: 四则运算赋值运算符: 将表达式的值赋给变量比较运算符: 表达式的比较, 返回布尔值逻辑运算符...

  • C++ 光速入门指南day02

    运算符 算术运算符: 四则运算赋值运算符: 将表达式的值赋给变量比较运算符: 表达式的比较, 返回布尔值逻辑运算符...

  • js笔记之运算符

    一:运算符和表达式 1.三目运算符(三元运算符) 表达式1?:表达式2:表达式3; ...

  • 2018-05-25笔记

    一:运算符和表达式 1.三目运算符(三元运算符) 表达式1?:表达式2:表达式3...

  • 三目运算符,函数,声明提前

    一:运算符和表达式 1.三目运算符(三元运算符) += -= *= /= %= 表达式1?:表达式2:表达式3...

  • C语言6 运算符和表达式

    C语言6 运算符和表达式 运算符与表达式 什么是运算符?什么是表达式? 表达式的结果 表达式不论怎么复杂。最终只有...

  • 125运算符与数据类型转换

    一、运算符 1、赋值运算符:= 表示将某个数值或表达式赋值给左边的变量; 表达式:符号(加减乘除。。。)与操作数(...

  • 干货来了!表达式与if结构让Java更简单!

    表达式:符合一定语法规则的运算符和操作数的序列, 表达式的运算按运算符优先级从高到低顺序进行。可添加()提高优先级...

网友评论

    本文标题:力扣 282 给表达式添加运算符

    本文链接:https://www.haomeiwen.com/subject/dcpqsktx.html