241. Different Ways to Add Parentheses
来源:互联网 发布:一维数组的概念 编辑:程序博客网 时间:2024/06/10 17:29
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]
思路:类似于Unique Binary Search Tree II。以不同的运算符做区分,计算左边的值,计算右边的值,然后相乘放入最后结果。
class Solution {public:vector<int> diffWaysToCompute(string input) {vector<int> res;if (input.empty())return res;for (int i = 0; i < input.size(); i++){char ch = input[i];if (ch == '+' || ch == '-' || ch == '*'){vector<int> left = diffWaysToCompute(input.substr(0, i));vector<int> right = diffWaysToCompute(input.substr(i + 1));int tmp = 0;for (int l : left){for (int r : right){switch (ch){case '+':tmp = l + r;break;case '-':tmp = l - r;break;case '*':tmp = l*r;break;}res.push_back(tmp);}}}}if (res.empty()){res.push_back(atoi(input.c_str()));}return res;}};
0 0
- [leetcode] 241.Different Ways to Add Parentheses
- Leetcode-241.Different Ways to Add Parentheses
- 241. Different Ways to Add Parentheses LeetCode
- Leetcode- 241.Different Ways to Add Parentheses
- [LeetCode]241. Different Ways to Add Parentheses
- 241. Different Ways to Add Parentheses
- [leetcode] 241. Different Ways to Add Parentheses
- 241. Different Ways to Add Parentheses
- 241. Different Ways to Add Parentheses
- LeetCode *** 241. Different Ways to Add Parentheses
- 241. Different Ways to Add Parentheses
- 241. Different Ways to Add Parentheses
- LeetCode 241. Different Ways to Add Parentheses
- 241. Different Ways to Add Parentheses
- 241. Different Ways to Add Parentheses
- LeetCode 241. Different Ways to Add Parentheses
- LeetCode-241.Different Ways to Add Parentheses
- LeetCode 241. Different Ways to Add Parentheses
- 关于iOS--弹出窗口的使用
- 70. Climbing Stairs
- 将Sprite转换为Image
- VMware Workstation10.0.4 build-2249910安装ubuntu-14.04-desktop-amd64记录
- 基于U-BOOT-2010.09移植OK6410开发版记录(二)
- 241. Different Ways to Add Parentheses
- scanf正则表达式
- 初次邂逅Hibernate之进一步了解
- Matlab的GUI参数传递方式总结
- BUG之虐之思考篇
- 初识C++
- Hibernate.hbm2ddl.auto理解
- Mybatis--Statement Builders
- linux下管道的容量以及实现机制