【Leetcode】Generate Parent
来源:互联网 发布:搜狗五笔 mac 编辑:程序博客网 时间:2024/06/14 22:48
【题目】
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:
"((()))", "(()())", "(())()", "()(())", "()()()"
【分析】
其实我觉得这种题,我一遇到就感觉完全懵了。。
但是其实写几个例子,就能看出规律
1 ()
2 ()(),(())
3 ()()(), (())(), (()()), ()(()), ((()))
规律是这样的 ,假设我们已经产生了n-1对括号的所有组合,那么在这个基础上我们可以产生所有的n对括号的组合,我们把一个(放在每个n-1对括号组合的开头,然后在每个每一个括号配好对的位置插入一个)。这样我们就产生了一个n对括号的组合。
For 2, it should place one "()" and add another one insert it but none tail it,
'(' f(1) ')' f(0)
or add none insert it but tail it by another one,
'(' f(0) ')' f(1)
Thus for n, we can insert f(i) and tail f(j) and i+j=n-1,
'(' f(i) ')' f(j)
【代码】
public List<String> generateParenthesis(int n) { List<String> result = new ArrayList<String>(); if (n == 0) { result.add(""); } else { for (int i = n - 1; i >= 0; i--) { List<String> insertSub = generateParenthesis(i); List<String> tailSub = generateParenthesis(n - 1 - i); for (String insert : insertSub) { for (String tail : tailSub) { result.add("(" + insert + ")" + tail); } } } } return result;}
0 0
- 【Leetcode】Generate Parent
- LeetCode: Generate Parentheses
- LeetCode: Generate Parentheses
- [Leetcode] Generate Parentheses
- 【leetcode】 generate parenthesis !!
- 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--Rotate List
- ansi编码
- iOS-Core-Animation-Advanced-Techniques(三)
- mybatis与spring整合(基于配置文件)
- Improving Layout Performance
- 【Leetcode】Generate Parent
- 选择类聚——解决商家微信营销之急
- Python3 如何优雅地使用正则表达式(详解一)
- html 锚点的使用
- VS2010/MFC编程入门之三十五(菜单:菜单及CMenu类的使用)
- App适配iPhone 6/ Plus和iOS 8:10条小秘诀
- 【整理】Xcode中的iOS模拟器(iOS Simulator)的介绍和使用心得
- iOS 推送deviceToken 的唯一性
- Windows核心编程笔记(1)----句柄