[LeetCode]22. Generate Parentheses
来源:互联网 发布:2016淘宝下半年活动 编辑:程序博客网 时间:2024/05/17 07:04
Description
Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.
Example
For example, given n = 3, a solution set is:
[
“((()))”,
“(()())”,
“(())()”,
“()(())”,
“()()()”
]
Discussion
这个题目是给定一个整数n,要求给出所有的括号匹配情况。考虑使用深度优先搜索来遍历所有的括号情况。需要注意的是从任意点往前看左括号的数目都不能小于右括号的数目,否则就会有一个单独的右括号没有匹配。
算法的时间复杂度为种类数
,md不会算。
C++ Code
class Solution {public: vector<string> generateParenthesis(int n) { vector<string> answer; dfs(0, 0, n, "", answer); return answer; } /** **运用dfs来遍历每种搭配。左括号的数量不可能小于右括号 **leftNum:左括号数 **rightNum:右括号数 **predix:前面已有字符串 **/ void dfs(int leftNum, int rightNum, int n, string predix, vector<string> &answer) { if(leftNum == n && rightNum == n) { answer.push_back(predix); } //若左括号数量比右括号多,则下一个可以是左括号或右括号 if(leftNum > rightNum) { if(leftNum < n) dfs(leftNum + 1, rightNum, n, predix + '(', answer); if(rightNum < n) dfs(leftNum, rightNum + 1, n, predix + ')', answer); } //若左括号数量和右括号一样,则下一个只能是左括号 if(leftNum == rightNum) { if(leftNum < n) dfs(leftNum + 1, rightNum, n, predix + '(', answer); } }};
阅读全文
0 0
- [LeetCode]22.Generate Parentheses
- LeetCode --- 22. Generate Parentheses
- LeetCode 22.Generate Parentheses
- [Leetcode] 22. Generate Parentheses
- 【LeetCode】22.Generate Parentheses
- [leetcode] 22.Generate Parentheses
- 【leetcode】22. Generate Parentheses
- Leetcode-22.Generate Parentheses
- [leetcode] 22. Generate Parentheses
- 22. Generate Parentheses LeetCode
- leetcode 22. Generate Parentheses
- [LeetCode]22. Generate Parentheses
- leetcode 22. Generate Parentheses
- leetcode 22. Generate Parentheses
- LeetCode 22. Generate Parentheses
- [LeetCode]22. Generate Parentheses
- LeetCode *** 22. Generate Parentheses
- LeetCode 22. Generate Parentheses
- 【1】C#基础:数据类型、运算、随机、枚举、结构、数组、列表、文件和文件流、序列化、MD5
- 1628 Pizza Delivery
- vins资料网址
- 前端必须要注意的规范(三)之js规范
- 阴影的生成
- [LeetCode]22. Generate Parentheses
- 大疆提前批Android端 终面后加面
- 获取网络json+图片
- 算法竞赛入门经典(第二版)第一章课后习题
- bootstrap预设置
- httpClient
- C++ 的整数类型及其输入输出
- 2018百度测试开发面经(已拿offer)
- 360内推Android面经