当前位置:网站首页>leetcode:241. 为运算表达式设计优先级
leetcode:241. 为运算表达式设计优先级
2022-08-04 14:31:00 【OceanStar的学习笔记】
题目来源
题目描述
class Solution {
public:
vector<int> diffWaysToCompute(string expression) {
}
};
题目解析
对于一个形如 x op y(op 为运算符,x 和 y 为数) 的算式而言,它的结果组合取决于 x 和 y 的结果组合数,而 x 和 y 又可以写成形如 x op y 的算式。
因此,该问题的子问题就是x op y
中的 x 和 y :以运算符分隔的左右两侧算术解
三步:
- 分解:按照运算符分成左右两部分,分别求解
- 解决:实现一个递归函数,输入算式,返回算式解
- 合并:根据运算符合并左右两部分的解,得出最终解
class Solution {
public:
vector<int> diffWaysToCompute(string exp) {
vector<int> vec1, vec2, res;
int N = exp.size();
int flag = 0;// flag=1说明string是表达式,flag=0说明string是一个数字
for (int i = 0; i < N; ++i) {
if(exp[i] == '+' || exp[i] == '-' || exp[i] == '*'){
flag = 1;
vec1 = diffWaysToCompute(std::string(exp, 0, i));
vec2 = diffWaysToCompute(std::string(exp, i + 1, N - i - 1));
for(int v1 : vec1){
for(int v2 : vec2){
if(exp[i] == '+') res.push_back(v1+v2);
if(exp[i] == '-') res.push_back(v1-v2);
if(exp[i] == '*') res.push_back(v1*v2);
}
}
}
}
if(flag == 0){
return {
std::stoi(exp)};
}
return res;
}
};
边栏推荐
- 基于 Next.js实现在线Excel
- Workaround without Project Facets
- 数据库恢复
- Kyushu Cloud attended the Navigator Online Forum to discuss the current status, challenges and future of 5G MEC edge computing
- 郑轻新生校赛和中工选拔赛题解
- [深入研究4G/5G/6G专题-50]: URLLC-16-《3GPP URLLC相关协议、规范、技术原理深度解读》-10-高可靠性技术-1-低编码率编码调制方案MCS与高可靠性DRB
- 【模型部署与业务落地】基于量化芯片的损失分析
- [Beiya data recovery] IBM System Storage storage lvm information lost data recovery solution
- Win11快速助手在哪里?Win11打开快速助手的方法
- OAID是什么
猜你喜欢
Win10无法访问移动硬盘怎么解决
Crawler - basic use of selenium, no interface browser, other uses of selenium, cookies of selenium, crawler cases
【模型部署与业务落地】基于量化芯片的损失分析
How to automatically renew the token after it expires?
九州云出席领航者线上论坛,共话5G MEC边缘计算现状、挑战和未来
MySQL【触发器】
一看就会的Chromedriver(谷歌浏览器驱动)安装教程
MySQL【窗口函数】【共用表表达式】
解题-->在线OJ(十八)
相似文本聚类与调参
随机推荐
Almost all known protein structures in the world are open sourced by DeepMind
特殊品种的二次开户验资金额
利用决策树找出最优特征组合
兆骑科创创新创业大赛活动举办,线上直播路演,投融资对接
职场漫谈:为什么越是内卷的行业越有人争着抢着往里冲?好奇怪的说...
B.构造一个简单的数列(贪心)
SLAM 05.视觉里程计-2-特征法
爬虫——动作链、xpath、打码平台使用
输入输出流总结
自监督学习未来是掩码自编码器?KAIST最新《自监督学习掩码自编码器》研究进展
Lixia Action | Kyushu Yunzhang Jinnan: Open source is not a movement for a few people, popularization is the source
[Beiya data recovery] IBM System Storage storage lvm information lost data recovery solution
浙江大学团队使用基于知识图谱的新方法,从空间分辨转录组数据中推断细胞间通信状况
[机缘参悟-60]:《兵者,诡道也》-1-开篇:“死“与“生“都是天道
编程思想_编程有必要给孩子学吗?
快解析结合友加畅捷U+
G. Mountaineering Squad (violence & dfs)
【问题解决】QT更新组件出现 “要继续此操作,至少需要一个有效且已启用的储存库”
MySQL性能指标TPS\QPS\IOPS如何压测?
Workaround without Project Facets