241. Different Ways to Add Parentheses
来源:互联网 发布:iphone淘宝 编辑:程序博客网 时间:2024/05/21 22:43
241. 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)) = 2Output: [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) = 10Output: [-34, -14, -10, -10, 10]
代码如下:
class Solution {public: vector<int> diffWaysToCompute(string input) { vector<int> result; for (int i = 0; i < input.size(); i++) { char cur = input[i]; if (cur == '-' || cur == '+' || cur == '*') { vector<int> result1 = diffWaysToCompute(input.substr(0, i)); vector<int> result2 = diffWaysToCompute(input.substr(i + 1)); for (auto n1 : result1) { for (auto n2 : result2) { if (cur == '+') result.push_back(n1 + n2); if (cur == '-') result.push_back(n1 - n2); if (cur == '*') result.push_back(n1 * n2); } } } //若等式不包含运算符,即只含一个数字 } if (result.empty()) result.push_back(atoi(input.c_str())); return result; }};
解题思路:
- 本题采用递归 思路;
- 将每个表达式从符号‘+’‘-’‘*’处递归的分解为括号内外两部分计算,最终变为含一个运算符的等式即可。
阅读全文
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
- TCP 为什么是三次握手,为什么不是两次或四次?
- latch:cbc等待
- python 关于如何监控键盘长按输入的思考
- 入门经典_Chap07_题解总结:枚举, 回溯, 状态空间搜索, IDA*
- Lua语言15分钟快速入门
- 241. Different Ways to Add Parentheses
- .Java序列化与反序列化
- ubuntu中,如何打开.ipynb文件
- 根据身份证号计算:出生年月日和性别
- Java设计模式之创建型模式-单例模式(Singleton)
- for循环,判断一个数是否是素数。
- CF Round #423 Div. 2 C. String Reconstruction D. High Load 【思维】
- POJ 3087 Shuffle'm Up
- 常见问题(二)