(算法分析Week11)Generate Parentheses[Medium]
来源:互联网 发布:ug10钻孔编程 编辑:程序博客网 时间:2024/05/07 18:34
22.Generate Parentheses
题目来源
Description
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:
[ "((()))", "(()())", "(())()", "()(())", "()()()"]
给定一个非负整数n,生成n对括号的所有合法排列。
Solution
有点类似长度为n的不重复数组的所有合法入栈出栈次序。若要合法(匹配),则第1到2n个位置都满足如下规则:左括号的个数大于等于右括号的个数。当剩余left > 0,可以直接打印左括号,不会出错;若left >= right,我们不能打印右括号;当left和right都为0,说明一个合法序列已经生成。
利用递归解决。
Complexity analysis
略。
Code
class Solution {public: vector<string> generateParenthesis(int n) { vector<string> result; string temp = ""; int left = n; int right = n; generate(left, right, temp, result); return result; } void generate(int left, int right, string res, vector<string> &result) { if (left == 0 && right == 0) { result.push_back(res); } if (left > 0) { generate(left - 1, right, res+'(', result); } if (left < right && right > 0) { generate(left, right-1, res+')', result); } }};
Result
阅读全文
0 0
- (算法分析Week11)Generate Parentheses[Medium]
- 22. Generate Parentheses Medium
- (算法分析Week11)Swap Nodes in Pairs[Medium]
- 算法设计与分析(15) -- Generate Parentheses(难度:Medium)
- [Leetcode 22, Medium] Generate Parentheses
- LeetCode #22 - Generate Parentheses - Medium
- LeetCode 22. Generate Parentheses (Medium)
- 【Leetcode-Medium-22】Generate Parentheses
- LeetCode-22-Generate Parentheses(DFS/递归)-Medium
- Leetcode 22. Generate Parentheses (Medium) (cpp)
- Leetcode OJ 22 Generate Parentheses [Medium]
- Leetcode OJ 22 Generate Parentheses [Medium]
- N-Queens(算法分析week11)
- (算法分析Week1)Different Ways to Add Parentheses[Medium]
- 第十六周算法分析与设计:Generate Parentheses
- 【leetcode】Generate Parentheses 算法解析
- leetcode Generate Parentheses 回溯算法
- 22. Generate Parentheses 回溯算法
- java中常用的集合总结
- java集合Collection中的常用方法
- 输出精度问题
- 23种设计模式之-----工厂方法模式(Method Factory pattern)
- 十九:集合操作
- (算法分析Week11)Generate Parentheses[Medium]
- 符号三角形问题(回溯)-算法设计与分析
- 数据库完整性约束
- MySql innodb的锁
- /usr/bin/ld: 找不到 -lippicv
- Linux私房菜学习-第6章Linux文件权限与目录
- Springboot No EntityManager with actual transaction available for current thread
- LeetCode.94 Binary Tree Inorder Traversal
- MATLAB内置常见函数