leetcode No22. Generate Parentheses
2016-07-03 21:55
381 查看
Question:
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:
[ "((()))", "(()())", "(())()", "()(())", "()()()" ]
Algorthim:
此题可以用二叉树的思想:当左括号个数小于n时,添加左括号
当左括号个数大于右括号时,添加右括号
Ex:假设n=3,先添加左括号(右括号一样),如图所示:
Accepted Code:
class Solution { public: vector<string> generateParenthesis(int n) { vector<string> res; helper(res,"",n,n); return res; } void helper(vector<string> &res,string tmp,int left,int right) { if(left==0 && right==0) { res.push_back(tmp); return; } if(left>0) helper(res,tmp+'(',left-1,right); if(left<right) //此时左括号的个数大于右括号 helper(res,tmp+')',left,right-1); } };
相关文章推荐
- 流程设计器jQuery + svg/vml(Demo7 - 设计器与引擎及表单一起应用例子)
- 一把年纪了,自拍留个纪念
- java中的synchronize(修饰方法)
- 第二个问题
- 数据库管理系统--读书笔记(1)
- leetcode: Sum Root to Leaf Numbers
- VirtualBox虚拟机网络设置
- 人工智能或许把人类引入灾难的深渊?
- 客户端笔记五
- SuperSocket应用之FTP源码解析
- open-falcon监控系统简介
- java环境常见错误
- ArcGIS JavaScript在线编辑
- C语言间隔删除数组的探究
- Swift开发小技巧--扫描二维码,二维码的描边与锁定,设置扫描范围,二维码的生成(高清,无码,你懂得!)
- 客户端笔记四
- 如何在Fragment中获取Activity
- ngrok部署代码
- OpenCV—Python 学习笔记
- 华为机试题【2】