LeetCode *** 241. Different Ways to Add Parentheses
2016-04-13 14:24
597 查看
题目:
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
Example 1
Input:
Output:
Example 2
Input:
Output:
分析:
分治法。
代码:
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]
分析:
分治法。
代码:
class Solution { public: vector<int> diffWaysToCompute(string input) { vector<int> res; for(int i=0;i<input.size();++i){ if(input[i]=='+'||input[i]=='-'||input[i]=='*'){ vector<int> first=diffWaysToCompute(input.substr(0,i)); vector<int> second=diffWaysToCompute(input.substr(i+1)); for(int f:first) for(int s:second){ if(input[i]=='+')res.push_back(f+s); else if(input[i]=='-')res.push_back(f-s); else res.push_back(f*s); } } } if(res.empty())res.push_back(atoi(input.c_str())); return res; } };
相关文章推荐
- js更改日期问题处理
- js clone对象的方法
- Jquery实现全选中全不选中以及获取选中行的相关值
- javascript
- 表单验证插件jQuery.validate 介绍+快速入门案例
- ENode 2.0 - 整体架构介绍
- Posting array of JSON objects to MVC3 action method via jQuery ajax
- HTML5离线缓存的简单介绍
- nodemanager节点报错Unexpected error starting NodeStatusUpdater
- 离线安装Cloudera Manager5.3.4与CDH5.3.4
- 19. Remove Nth Node From End of List
- 59、JS中怎样判断undefined(比较不错的方法)
- jquery从tr获取td
- 新学的插件jquery.tablesorter很好用,说说遇到的表格动态添加的数据不能排序的问题
- [Java] 过滤流BufferedInputStream和BufferedOutputStream
- 剑指offer系列之55:删除链表汇总重复的节点
- Node.js包(JXcore)
- JS 获取中英字符串字节长度
- Node.js规范化应用
- 关于html中的height、innerHeight、outerHeight区别