当前位置:网站首页>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;
}
};
边栏推荐
- 【历史上的今天】8 月 4 日:第一位图灵奖女性得主;NVIDIA 收购 MediaQ;首届网络安全挑战大赛完成
- 开放麒麟 openKylin 版本规划敲定:10 月发布 0.9 版并开启公测,12 月发布 1.0 版
- idea去掉spark的日志
- 技术分享| 融合调度系统中的电子围栏功能说明
- 在腾讯,我的试用期总结!
- [深入研究4G/5G/6G专题-50]: URLLC-16-《3GPP URLLC相关协议、规范、技术原理深度解读》-10-高可靠性技术-1-低编码率编码调制方案MCS与高可靠性DRB
- 电子行业MES管理系统有哪些特殊功能
- 文盘Rust -- 配置文件解析
- 一看就会的Chromedriver(谷歌浏览器驱动)安装教程
- Oracle RAC环境下vip/public/private IP的区别
猜你喜欢

Kyushu Cloud attended the Navigator Online Forum to discuss the current status, challenges and future of 5G MEC edge computing

从理论到实践:MySQL性能优化和高可用架构,一次讲清

世间几乎所有已知蛋白质结构,都被DeepMind开源了

小 P 周刊 Vol.13

【Web技术】1401- 图解 Canvas 入门

Phasecraft连下两城,助力英国量子技术商业化加速!

开放麒麟 openKylin 版本规划敲定:10 月发布 0.9 版并开启公测,12 月发布 1.0 版

第六届未来网络发展大会,即将开幕!

阿里老鸟终于把测试用例怎么写说的明明白白了,小鸟必看

Win10无法访问移动硬盘怎么解决
随机推荐
Android Sqlite3基本命令
Rust from entry to proficient 04-variables
SLAM 05.视觉里程计-2-特征法
word2003按空格键为什么会出现小数点
四平方和,激光炸弹
南瓜科学产品升级 开启益智探索新篇章
量化细胞内的信息流:机器学习时代下的研究进展
Theory 1: Deep Learning - Detailed Explanation of the LetNet Model
开发者独立搭建一个跨模态搜索应用有多难?
兆骑科创创新创业大赛活动举办,线上直播路演,投融资对接
Lecture 4 SVN
vim 常用操作命令
【北亚数据恢复】IBM System Storage存储lvm信息丢失数据恢复方案
2042. 检查句子中的数字是否递增-力扣双百代码-设置前置数据
How to automatically renew the token after it expires?
蓝牙技术|上半年全国新增 130 万台充电桩,蓝牙充电桩将成为市场主流
砺夏行动|九州云章津楠:开源不是少数人的运动,大众化才是源泉
Android Sqlite3 basic commands
MySQL【触发器】
[机缘参悟-60]:《兵者,诡道也》-1-开篇:“死“与“生“都是天道