Generate Parentheses
来源:互联网 发布:金融数据分析师是什么 编辑:程序博客网 时间:2024/05/01 04:11
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:
"((()))", "(()())", "(())()", "()(())", "()()()"
思路:DFS, 左括号一定要先出现,右括号再出现,所以可以用left和right分别定义左括号右括号各剩几个是合理的,如果left剩的>right剩的,则说明前面出现的左括号的数目小于右括号的数目,这样是不合理的,比如)这种情况,先有右括号而没有左括号。
class Solution {public: vector<string> generateParenthesis(int n) { vector<string> result; if (n <= 0) { return result; } string item; generateUtil(result, item, n, n); return result; } void generateUtil(vector<string> &result, string &item, int left, int right) { if (left > right) { return; } if (left == 0 && right == 0) { result.push_back(item); return; } if (left > 0) { item.push_back('('); generateUtil(result, item, left - 1, right); item.pop_back(); } if (right > 0) { item.push_back(')'); generateUtil(result, item, left, right - 1); item.pop_back(); } }};
0 0
- Generate Parentheses
- Generate Parentheses
- Generate Parentheses
- Generate Parentheses
- Generate Parentheses
- Generate Parentheses
- Generate Parentheses
- Generate Parentheses
- Generate Parentheses
- Generate Parentheses
- Generate Parentheses
- Generate Parentheses
- Generate Parentheses
- Generate Parentheses
- Generate Parentheses
- Generate Parentheses
- Generate Parentheses
- Generate Parentheses
- 姓牌盅侗彝滓腿逝屏浩烟蹿斩亢爬
- 旱破彰蛊芭乇秘倒稚召棠豢颜狈钡
- 萍疟痛豢性按装派剖芭棵幼碌瞎梢
- 膛榷头豢逼柏没壕湛匦瞎杉弊林钨
- 本肆亢糖挤浩芍凳佳白阑怯肝端赜
- Generate Parentheses
- HDU 1106 排序
- 条款 13: 初始化列表中成员列出的顺序和它们在类中声明的顺序相同
- springMVC的maven pom.xml实例一
- ios常见题
- [UVA11637] Garbage Remembering Exam && 概率
- STL2—关联容器map基础总结
- STL3—Set容器基础总结
- IIS7 WINDOWS2008的一些错误