博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode-Generate Parentheses-22
阅读量:5363 次
发布时间:2019-06-15

本文共 763 字,大约阅读时间需要 2 分钟。

输入n,输出n个括号的组合。

如果仅仅求组合有多少种,直接用卡特兰公式,但要求输出所有组合,用dfs,回溯,条件是:

设ll和rr为剩下的左括号和右括号数

1.ll>0,可输出左括号

2.ll>=rr,说明不合法,return

3.输出右括号

原因是先出现了左括号才能出现右括号

1 class Solution { 2 public: 3     void dfs(vector
&s,string st,int ll,int rr){ 4 if(ll==rr&&rr==0){ 5 s.push_back(st); 6 return; 7 } 8 if(ll>0) dfs(s,st+'(',ll-1,rr); 9 if(ll>=rr) return;10 if(rr>0) dfs(s,st+')',ll,rr-1);11 }12 vector
generateParenthesis(int n) {13 vector
s;14 if(n==0) return s;15 int ll=n,rr=n;16 string st;17 st+='(';18 dfs(s,st,ll-1,rr);19 return s;20 }21 };

 

转载于:https://www.cnblogs.com/0summer/p/5820711.html

你可能感兴趣的文章
【算法】—— 随机音乐的播放算法
查看>>
mysql asyn 示例
查看>>
数据库第1,2,3范式学习
查看>>
《Linux内核设计与实现》第四章学习笔记
查看>>
使用iperf测试网络性能
查看>>
Docker 安装MySQL5.7(三)
查看>>
解决VS+QT无法生成moc文件的问题
查看>>
AngularJs练习Demo14自定义服务
查看>>
CF1067C Knights 构造
查看>>
[BZOJ2938] 病毒
查看>>
CSS: caption-side 属性
查看>>
CSS3中box-sizing的理解
查看>>
AMH V4.5 – 基于AMH4.2的第三方开发版
查看>>
Web.Config文件配置之配置Session变量的生命周期
查看>>
mysql导入source注意点
查看>>
linux下编译安装nginx
查看>>
ArcScene 高程不同的表面无法叠加
查看>>
[ONTAK2010] Peaks
查看>>
DLL 导出函数
查看>>
windows超过最大连接数解决命令
查看>>