leetcode---Different Ways to Add Parentheses
来源:互联网 发布:c语言数组变成字符串 编辑:程序博客网 时间:2024/05/21 17:10
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: map<string, int> m; vector<int> dfs(string input) { vector<int> v; for(int i=0; i<input.size(); i++) { if(input[i]=='+' || input[i]=='-' || input[i]=='*') { string s1 = input.substr(0, i); string s2 = input.substr(i+1); vector<int> r1, r2; int rr1, rr2; if(m.find(s1) != m.end()) rr1 = m[s1]; else r1 = dfs(s1); if(m.find(s2) != m.end()) rr2 = m[s2]; else r2 = dfs(s2); for(int j=0; j<r1.size(); j++) { for(int k=0; k<r2.size(); k++) { if(input[i] == '+') v.push_back(r1[j] + r2[k]); else if(input[i] == '-') v.push_back(r1[j] - r2[k]); else v.push_back(r1[j] * r2[k]); } } } } if(v.size() == 0) v.push_back(atoi(input.c_str())); return v; } vector<int> diffWaysToCompute(string input) { return dfs(input); }};
0 0
- leetcode 241 Different Ways to Add Parentheses
- Leetcode 241- Different Ways to Add Parentheses
- Leetcode #241 Different Ways to Add Parentheses
- LeetCode - Different Ways to Add Parentheses
- [leetCode] Different Ways to Add Parentheses
- [leetcode 241]Different Ways to Add Parentheses
- Leetcode|Different Ways to Add Parentheses
- [leetcode][dfs] Different Ways to Add Parentheses
- LeetCode Different Ways to Add Parentheses
- [LeetCode] Different Ways to Add Parentheses
- [leetcode] 241.Different Ways to Add Parentheses
- [leetcode]Different Ways to Add Parentheses
- LeetCode(241)Different Ways to Add Parentheses
- [LeetCode]Different Ways to Add Parentheses
- leetcode 241: Different Ways to Add Parentheses
- Leetcode: Different Ways to Add Parentheses
- [LeetCode 241] Different Ways to Add Parentheses
- LeetCode -- Different Ways to Add Parentheses
- splay 模板
- 多线程基础
- 06-1-linux下寻求帮助
- 高速PCB设计中的阻抗匹配
- 滚动照片抽奖软件
- leetcode---Different Ways to Add Parentheses
- jenkins+ant+jmeter接口自动化的持续集成测试框架
- 关于下载
- 【JZOJ4965】【GDKOI2017模拟1.21】Equation
- SELinux阻止某些程序运行的处理方法
- 06-2-文件相关命令初步
- java中的 FileWriter类 和 FileReader类的一些基本用法
- WC集训总结
- fabric0.6同步流程