首页 > 试题广场 >

给表达式添加运算符

[编程题]给表达式添加运算符
  • 热度指数:1420 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个仅包含数字的字符串 num 和一个目标值 target,在 num 的数字之间添加二元运算符 "+" , "-" 或 "*" ,返回所有能够得到目标值的表达式。

数据范围:字符串长度满足 , nums 中仅包含数字,
示例1

输入

"123",6

输出

["1+2+3","1*2*3"]
示例2

输入

"00",0

输出

["0+0","0*0","0-0"]
头像 比卡姆贝特
发表于 2022-03-22 22:22:21
思路 将结果定义为 presum+lastval+curval 的方式,根据+-*分别调整presum的取值。需要注意的是“0”的边界条件,0不能作为一个长度>1的子串的开始字符,需要过滤。 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @pa 展开全文
头像 fred-coder
发表于 2022-02-16 10:49:02
dfs, 给每个数字添加一个运算符,直到数字字符串结尾,比较计算结果和目标值是否相同 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param num string字符串 # @param target int整型 # @return stri 展开全文
头像 tompai
发表于 2022-01-19 20:04:55
//测试验证程序 public void Test() { String num = "73958"; int target = 24; //73-9-5*8=24 //73-9-5*8=24 String[] res = addOpt(num, target); if 展开全文
头像 Coming680
发表于 2022-03-21 15:28:47
介于数据规模较小,暴力dfs求解即可。 class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num string字符串 * @p 展开全文
头像 17c89
发表于 2024-05-10 11:58:58
import java.util.*; /** * NC217 给表达式添加运算符 * @author d3y1 */ public class Solution { private List<String> resultList = new ArrayList<& 展开全文
头像 小laji
发表于 2022-01-19 23:14:32
递归求解 public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num string字符串 * @param target int整型 * @retu 展开全文
头像 苦行潜修者
发表于 2024-04-20 11:32:21
using System; using System.Collections.Generic; class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num 展开全文
头像 姐姐的遮阳伞
发表于 2022-04-09 14:30:46
import java.util.*; public class Solution { public class ComparaInteger implements Comparator<Integer> { @Override pu 展开全文
头像 CroMarmot
发表于 2022-01-08 01:18:01
题意 给定数字字符串ABCDEFG..., 判断A+B+C+D+E+F+G...,A-B-C-D-E-F-G...,A*B*C*D*E*F*G... 三个值中,是否存在等于target的值的 限制: 字符串长度不超过10 方法 分别记录字符串和运算结果,分别计算 对于加法,减法,和乘法,分别处理 每 展开全文
头像 xqxls
发表于 2022-01-20 12:24:38
题意整理 给定一个仅包含数字的字符串num和一个目标值target。 在num的数字之间添加"+","-"或"*",返回所有能够得到目标值的表达式。 方法一(位运算) 1.解题思路 可以分两步解决,第一步将运算符添加到字符串num,组成一个表达式,找到所有可能的表达式,第二步校验生成的表达式,计 展开全文