当前位置:网站首页>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;
}
};
边栏推荐
猜你喜欢
开发者独立搭建一个跨模态搜索应用有多难?
砺夏行动|九州云章津楠:开源不是少数人的运动,大众化才是源泉
【HMS core】【Media】【视频编辑服务】 在线素材无法展示,一直Loading状态或是网络异常
【 HMS core 】 【 Media 】 online video editing service 】 【 material can't show, or network anomalies have been Loading state
从理论到实践:MySQL性能优化和高可用架构,一次讲清
编译型与解释型编程语言的区别
How to automatically renew the token after it expires?
【北亚数据恢复】IBM System Storage存储lvm信息丢失数据恢复方案
CCF GLCC正式开营|九州云开源专家携丰厚奖金,助力高校开源推广
The Internet of things application development trend
随机推荐
G.登山小分队(暴力&dfs)
【剑指offer59】队列的最大值
第十六章 源代码文件 REST API 教程(一)
【 HMS core 】 【 Media 】 online video editing service 】 【 material can't show, or network anomalies have been Loading state
X射线掠入射聚焦反射镜
vim common operation commands
Lixia Action | Kyushu Yunzhang Jinnan: Open source is not a movement for a few people, popularization is the source
Rust 从入门到精通04-变量
蓝牙技术|上半年全国新增 130 万台充电桩,蓝牙充电桩将成为市场主流
用了TCP协议,就一定不会丢包吗?
AOSP内置APP特许权限白名单
LCP 06. 拿硬币-遍历
Database recovery
Keycloak 6.0.0 正式发布,身份和访问管理系统
职场漫谈:为什么越是内卷的行业越有人争着抢着往里冲?好奇怪的说...
[深入研究4G/5G/6G专题-50]: URLLC-16-《3GPP URLLC相关协议、规范、技术原理深度解读》-10-高可靠性技术-1-低编码率编码调制方案MCS与高可靠性DRB
FRED应用:毛细管电泳系统
中大型商业银行堡垒机升级改造就用行云管家!必看!
License server system does not support this version of this feature
爬虫——动作链、xpath、打码平台使用