[LeetCode-Algorithms-22] "Generate Parentheses" (2017.10.25-WEEK8)
2017-10-25 22:38
429 查看
题目链接:Generate Parentheses
题目描述:Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.
For example, given n = 3, a solution set is:
[
“((()))”,
“(()())”,
“(())()”,
“()(())”,
“()()()”
]
(1)思路:在考虑每一个数的左括号时必须在其后插入括号对才能保证左右括号的匹配,采用递归的方法插入。
(2)代码:
class Solution { public: vector<string> generateParenthesis(int n) { set<string> gerp; int i, j; if (n == 0) gerp.insert(""); else { vector<string> pre = generateParenthesis(n - 1); for (i = 0; i < pre.size(); i++) { for (int j = 0; j < pre[i].size(); ++j) { if (pre[i][j] == '(') { pre[i].insert(pre[i].begin() + j + 1, '('); pre[i].insert(pre[i].begin() + j + 2, ')'); gerp.insert(pre[i]); pre[i].erase(pre[i].begin() + j + 1, pre[i].begin() + j + 3); } } gerp.insert("()" + pre[i]); } } return vector<string>(gerp.begin(), gerp.end()); } };
(3)提交结果:
相关文章推荐
- leetcode-22-Generate Parentheses
- [leetcode] 22 Generate Parentheses(递归)
- leetcode 22 Generate Parentheses
- [LeetCode]22 Generate Parentheses
- LeetCode-22-Generate Parentheses(DFS/递归)-Medium
- 【LeetCode】C# 22、Generate Parentheses
- [leetcode 22]Generate Parentheses-----n对括号可以组成的括号对序列
- Generate Parentheses_Leetcode_#22
- [leetcode 22] Generate Parentheses
- LeetCode 22 Generate Parentheses
- leetcode——22——Generate Parentheses
- LeetCode 22 Generate Parentheses
- Leetcode 22 Generate Parentheses
- LeetCode 22 Generate Parentheses(生成括号)
- 【Leetcode-Medium-22】Generate Parentheses
- leetcode[22]Generate Parentheses
- LeetCode 22 Generate Parentheses(生成括号)
- [LeetCode-Algorithms-20] "Valid Parentheses" (2017.11.1-WEEK9)
- LeetCode22——Generate Parentheses(给定n对括号,然后看有多少正确的括号组合)
- leetcode 22:Generate Parentheses(15-10-9)