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