427-生成括号

给定 n 对括号,请写一个函数以将其生成新的括号组合,并返回所有组合结果。

样例

给定 n = 3, 可生成的组合如下:

"((()))", "(()())", "(())()", "()(())", "()()()"

标签

回溯法 递归 字符串处理 谷歌 Zenefits

思路

使用回溯+递归

code

class Solution {
public:
/**
* @param n n pairs
* @return All combinations of well-formed parentheses
*/
vector<string> generateParenthesis(int n) {
// Write your code here
if (n <= 0) {
return vector<string>();
}
vector<string> result;
string temp;
generateParenthesis(n, temp, result, 0, 0);
return result;
} void generateParenthesis(int n, string temp, vector<string> &result, int lCount, int rCount) {
if (lCount == n) {
for (int i = rCount; i < n; i++) {
temp += ')';
}
result.push_back(temp);
return;
}
generateParenthesis(n, temp + '(', result, lCount + 1, rCount);
if (lCount > rCount) {
generateParenthesis(n, temp + ')', result, lCount, rCount + 1);
}
}
};

最新文章

  1. BZOJ 2038: [2009国家集训队]小Z的袜子(hose) [莫队算法]【学习笔记】
  2. RHEL 安装gcc 艰难历程
  3. 2016年11月24日 星期四 --出埃及记 Exodus 20:15
  4. 利用tomcat配置网站
  5. 千寻浏览器 1.0 Beta 1(524)(2014年5月27日)
  6. 一、JPEG文件格式-----压缩框架
  7. MongoDB的索引
  8. Python使用xslt提取网页数据
  9. 14.2.2 InnoDB Multi-Versioning InnoDB 多版本
  10. mysql分页的问题
  11. BZOJ.2199.[USACO2011 Jan]奶牛议会(2-SAT)
  12. gitlab覆盖率
  13. rem的计算
  14. python之函数用法locals()
  15. c++ 网络编程(十) LINUX/windows 异步通知I/O模型与重叠I/O模型 附带示例代码
  16. 适配高分辨率的图片High DPI Images for Variable Pixel Densities
  17. Qt 串口类QSerialPort 使用笔记
  18. gulp-usemin 插件使用
  19. BZOJ2434 [Noi2011]阿狸的打字机 【AC自动机 + fail树 + 树状数组】
  20. Java面向对象-package import关键字

热门文章

  1. PTA(BasicLevel)-1010 一元多项式求导
  2. Go语言反射之反射调用
  3. sqlserver之on与where条件
  4. dtree加载慢的问题
  5. 20155339 2016-2017-2 《Java程序设计》第十周学习总结
  6. 20145226夏艺华 《Java程序设计》实验报告五
  7. C#基础之反射
  8. 【LG3703】[SDOI2017]树点涂色
  9. 没有执行过rm -rf /*的开发不是好运维
  10. 二分查找的C#实现