282.给表达式添加运算符
给定一个仅包含数字 0-9
的字符串和一个目标值,在数字之间添加二元运算符(不是一元)+
、-
或 *
,返回所有能够得到目标值的表达式。
示例 1:
输入: num = "123", target = 6 输出: ["1+2+3", "1*2*3"]
示例 2:
输入: num = "232", target = 8 输出: ["2*3+2", "2+3*2"]
示例 3:
输入: num = "105", target = 5 输出: ["1*0+5","10-5"]
示例 4:
输入: num = "00", target = 0 输出: ["0+0", "0-0", "0*0"]
示例 5:
输入: num = "3456237490", target = 9191 输出: []
class Solution {
public:
vector<string> addOperators(string num, int target)
{
vector<string> res;
addOperatorsDFS(num, target, 0, 0, "", res);
return res;
}
void addOperatorsDFS(string num, int target, long long diff, long long curNum, string out, vector<string> &res)
{
if (num.size() == 0 && curNum == target) {
res.push_back(out);
}
for (int i = 1; i <= num.size(); ++i) {
string cur = num.substr(0, i);
if (cur.size() > 1 && cur[0] == '0') return;
string next = num.substr(i);
if (out.size() > 0) {
addOperatorsDFS(next, target, stoll(cur), curNum + stoll(cur), out + "+" + cur, res);
addOperatorsDFS(next, target, -stoll(cur), curNum - stoll(cur), out + "-" + cur, res);
addOperatorsDFS(next, target, diff * stoll(cur), (curNum - diff) + diff * stoll(cur), out + "*" + cur, res);
} else {
addOperatorsDFS(next, target, stoll(cur), stoll(cur), cur, res);
}
}
}
};
282.给表达式添加运算符相关推荐
- 282. 给表达式添加运算符
282. 给表达式添加运算符 给定一个仅包含数字 0-9 的字符串 num 和一个目标值整数 target ,在 num 的数字之间添加 二元 运算符(不是一元)+.- 或 * ,返回所有能够得到目标 ...
- leetcode 282. Expression Add Operators | 282. 给表达式添加运算符(中缀表达式求值)
题目 https://leetcode.com/problems/expression-add-operators/description/ 题解 中缀表达式求值问题,参考:leetcode 227. ...
- python的表达式3or5_Python 简明教程 --- 5,Python 表达式与运算符
靠代码行数来衡量开发进度,就像是凭重量来衡量飞机制造的进度. -- Bill Gates 目录 1,什么是表达式 表达式是代码的重要组成部分,一个表达式由运算符和操作数两部分组成. 一个表达式就描述了 ...
- python逻辑表达式3+45and_Python 简明教程 --- 5,Python 表达式与运算符
靠代码行数来衡量开发进度,就像是凭重量来衡量飞机制造的进度. -- Bill Gates 目录 1,什么是表达式 表达式是代码的重要组成部分,一个表达式由运算符和操作数两部分组成. 一个表达式就描述了 ...
- java 运算符_详解Java表达式与运算符
课程导言 [变量的赋值与计算都离不开表达式,表达式的运算依赖于变量.常量和运算符.本节课讨论Java的表达式的构成.常量的定义.运算符的分类及应用.通过本课的学习你将掌握运用表达式和运算符完成变量赋值 ...
- (15)Verilog表达式与运算符-基本语法(三)(第3天)
(15)Verilog表达式与运算符-基本语法(三)(第3天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)Verilog表达式与运算符-基本语法(三)(第3天 ...
- java加法运算表达式_java运算符和表达式
1. 算术运算符与算术表达式(1) 加减运算符 +,-.例如 2+39,908.98-23等. 加减运算符是双目运算符,即连接两个操作元的运算符.加减运算符的结合方向是从左到右.例如: 2+3-8,先 ...
- C# 表达式与运算符
C# 表达式与运算符 1.表达式 表达式由运算符和操作符组成的,运算符设置将对操作数进行什么样的运算符,而操作数包括文本,常量,变量和表达式等. 1.算术运算符 +:加号. -:减号. *:乘号. / ...
- c语言笔记-----运算符和表达式(算术,自增自减,关系,赋值,逻辑运算符及其表达式,运算符和优先级总结)
运算符 一.运算符和表达式的相关概念以及分类: **1.运算符的概念:**运算符就是一些特定的符号,用来表示针对数据的特定操作,也称之为操作符. 2.运算符的分类:分类方法不同,结果不同. **1)* ...
- C语言为运算表达式添加括号,读书笔记-c语言-运算符与表达式
1.算术运算符:+-*/% %要求参与运算的两个量必须是整型或字符型的,实型(float,double等)的数据不能做%运算. 算术表达式 运算符和数据可以组成运算的式子,称为表达式.举例:10+20 ...
最新文章
- 第一次使用MsChart运行提示:ChartImg.axd 执行子请求时出错。
- 在Homebrew 发布程序
- 程序员选择字体的标准是
- 编程问题难解决,学会提问是关键!
- oracle數據庫any,Oracle权限集合全集
- android:versionCode和android:versionName 用途
- AT3557 Four Coloring 切比雪夫距离 + 四色构造
- studio 快捷键
- 如何使用移动硬盘加密
- ThinkCMF变量输出+使用函数
- mysql双机热备的配置步骤
- SylixOS 内存管理源代码分析--pageLib.c
- 尚硅谷大数据之Linux
- 解决AxureRP经常性损坏问题
- 云服务器 ECS Linux 配置 vsftpd即FTP的搭建和使用
- box-sizing:boder-box
- 十月美剧精听总结 - 权力的游戏「Game of Throne」 黑袍纠察队「The boys」 老无所依「No Country for the old men」
- Python爬虫入门4:使用IE浏览器获取网站访问的http信息
- 计算机与模拟实验的论文,作业模拟论文,关于森林作业的计算机模拟相关参考文献资料-免费论文范文...
- 10款最著名的代码(文本)编辑器
热门文章
- 基于Vue、vue-i18n实现国际化(多语言)
- ZTree async中文乱码,ZTree reAsyncChildNodes中文乱码,zTree中文乱码
- phpstrom 设置svn提交的代码同步到服务器
- react-native 解决“Could not get BatchedBridge...” 的问题
- spark 查看 job history 日志
- We7CMS内容管理系统助阵政府完善信息公开制度
- java.util.concurrent.locks.LockSupport
- Js获取处理日期时间
- IIS添加对ashx文件的支持
- Servlet技术详解