博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【LeetCode】241. Different Ways to Add Parentheses
阅读量:6568 次
发布时间:2019-06-24

本文共 1590 字,大约阅读时间需要 5 分钟。

Different Ways to Add Parentheses

Given a string of numbers and operators, return all possible results from computing all the different possible ways to group numbers and operators. The valid operators are+- and *.

Example 1

Input: "2-1-1".

((2-1)-1) = 0(2-(1-1)) = 2

Output: [0, 2]

Example 2

Input: "2*3-4*5"

(2*(3-(4*5))) = -34((2*3)-(4*5)) = -14((2*(3-4))*5) = -10(2*((3-4)*5)) = -10(((2*3)-4)*5) = 10

Output: [-34, -14, -10, -10, 10]

Credits:

Special thanks to  for adding this problem and creating all test cases.

 

与思路类似,可以对照看。

本题参考的做法

左右子串分别计算所有可能,然后全排列。

class Solution {public:    vector
diffWaysToCompute(string input) { vector
ret; for(int i = 0; i < input.size(); i ++) { if(input[i] == '+' || input[i] == '-' || input[i] == '*') { vector
left = diffWaysToCompute(input.substr(0, i)); vector
right = diffWaysToCompute(input.substr(i+1)); for(int j = 0; j < left.size(); j ++) { for(int k = 0; k < right.size(); k ++) { if(input[i] == '+') ret.push_back(left[j] + right[k]); else if(input[i] == '-') ret.push_back(left[j] - right[k]); else ret.push_back(left[j] * right[k]); } } } } if(ret.empty()) ret.push_back(atoi(input.c_str())); return ret; }};

转载地址:http://kbpjo.baihongyu.com/

你可能感兴趣的文章
sql 递归查询
查看>>
KMP C++
查看>>
HDU1506 Largest Rectangle in a Histogram(算竞进阶习题)
查看>>
HTTP响应状态码
查看>>
crushmap磁盘智能分组
查看>>
《算法导论》读书笔记--第三章 函数的增长
查看>>
《利用python进行数据分析》读书笔记--第八章 绘图和可视化
查看>>
栈的操作
查看>>
Flask 备注一(单元测试,Debugger, Logger)
查看>>
ElasticSearch(八):springboot集成ElasticSearch集群并使用
查看>>
Java基础学习_01 概述及环境配置
查看>>
20165239其米仁增3
查看>>
[Usaco2005 Open]Disease Manangement 疾病管理 BZOJ1688
查看>>
P2657 [SCOI2009]windy数 数位dp入门
查看>>
Elasticsearch 运维实战之1 -- 集群规划
查看>>
jetty安装、配置、优化
查看>>
Android-环境问题
查看>>
Android- assent和raw的区别
查看>>
Vue-系统修饰键
查看>>
1264: [AHOI2006]基因匹配Match
查看>>