22. Generate Parentheses
2016-04-21 10:44
295 查看
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:
For example, given n = 3, a solution set is:
"((()))", "(()())", "(())()", "()(())", "()()()"
【思路】设置两个计数器,分别计数左右括号的数量,左括号初始为n,表示需要产生n个左括号,右括号为0。如果当前选择左括号,则left计数减一,并且右括号数量加1,表示当前需要产生right个右括号来匹配左括号。当左右计数器都为0,则表明已经把左右括号全部产生完,此分支结束。
class Solution { public: void DFS(vector<string> &result, string str, int left, int right) { if(left==0 && right ==0){ result.push_back(str); return; } if(left > 0) { DFS(result, str+"(", left-1, right +1 ); } if(right > 0) { DFS(result, str+")", left, right-1); } } vector<string> generateParenthesis(int n) { vector<string> result; if(n<=0) return result; string str; DFS(result, str, n,0); return result; } };
相关文章推荐
- java西天取经之路(一)Servlet技术学习总结
- ios 3D Touch功能的实现
- 博客已转移
- IOS-Coredata 核心数据库的基础使用
- POJ 3076 SUKODU [Dangcing Links DLX精准覆盖]
- HTTPS工作原理
- float的精度,3个小数相加后精度丢失--小数比较使用bccomp()方法
- spring-mvc不拦截静态资源的配置
- 验证mongodb副本集并实现自动切换primary~记录过程
- 多线程编程之互斥
- Unity3D安卓导出包加密学习--加密Assembly-CSharp.dll
- php验证码调试
- Android打包APK的时候出现conversion to dalvik format failed with error 1错误!
- 论文摘要要多少字合适
- 119. Pascal's Triangle II
- webstorm破解
- app开发相关
- 使用easyui layout 布局的时候部分页面遮住的解决办法
- 常用数据结构的时间复杂度
- Error:Cannot run program "svn" (in directory "E:\work\kuaisou_1.3.8\Hello"): CreateProcess error=2,