[LeetCode] Generate Parentheses
来源:互联网 发布:淘宝怎样买枪 编辑:程序博客网 时间:2024/04/30 09:33
题目
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:
"((()))", "(()())", "(())()", "()(())", "()()()"
思路
这道题可以用广度优先搜索的思想解决。在每个位置,都有可能是左括号或者右括号,关键是找到其中的规律。假设当前还有m个左括号,n个右括号,则下一个位置有三种可能:
1)n = 0,得到一种排列
2)m > 0,左括号
3)n > m,右括号
代码
public class Solution { public List<String> generateParenthesis(int n) { List<String> result = new ArrayList<String>(); if(n == 0) return result; String permutation = ""; generatePermutation(n, n, permutation, result); return result; } public void generatePermutation(int left, int right, String permutation, List<String> result) { if(right == 0) result.add(permutation); if(left > 0) generatePermutation(left-1, right, permutation + "(", result); if(left < right) generatePermutation(left, right-1, permutation + ")", result); }}
0 0
- LeetCode: Generate Parentheses
- LeetCode: Generate Parentheses
- [Leetcode] Generate Parentheses
- leetcode 51: Generate Parentheses
- [LeetCode] Generate Parentheses
- Leetcode: Generate Parentheses
- LeetCode Generate Parentheses
- 【leetcode】Generate Parentheses
- [LeetCode]Generate Parentheses
- Leetcode Generate Parentheses
- LeetCode-Generate Parentheses
- LeetCode: Generate Parentheses
- LeetCode - Generate Parentheses
- LeetCode 22: Generate Parentheses
- LeetCode: Generate Parentheses
- Leetcode: Generate Parentheses
- 【leetcode】Generate Parentheses
- Leetcode: Generate Parentheses
- POJ-1959 Darts
- YUV420图像转换到400图像并输出
- oC语言 LRC歌词制作
- Autoreleasepool自动释放池与内存相关
- ZXing二维码/条形码扫码集成竖屏解决方案 version-3.2.1
- [LeetCode] Generate Parentheses
- 求四分位点
- 大数据可视化Google Chart实现
- 2048游戏-AI程序算法分析
- 295. Find Median from Data Stream
- Servlet教程 (二) 实现Servlet的三种方式
- Java EL 详细用法讲解
- canvas:利用js遍历绘制七巧板
- 落叶枫桥LOGO