LeetCode 22 Generate Parentheses (DFS 构造)
2017-07-08 13:22
411 查看
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即可,DFS构造
public class Solution {
public void DFS(int l, int r, int n, String str, List<String> ans) {
if (l == n && r == n) {
ans.add(str);
return;
}
if (l > r) {
DFS(l, r + 1, n, str + ")", ans);
}
if (l < n) {
DFS(l + 1, r, n, str + "(", ans);
}
}
public List<String> generateParenthesis(int n) {
List<String> ans = new ArrayList<>();
DFS(0, 0, n, "", ans);
return ans;
}
}
For example, given n = 3, a solution set is:
[ "((()))", "(()())", "(())()", "()(())", "()()()" ]
题目分析:只要保证左括号个数大于等于右括号且小于等于n即可,DFS构造
public class Solution {
public void DFS(int l, int r, int n, String str, List<String> ans) {
if (l == n && r == n) {
ans.add(str);
return;
}
if (l > r) {
DFS(l, r + 1, n, str + ")", ans);
}
if (l < n) {
DFS(l + 1, r, n, str + "(", ans);
}
}
public List<String> generateParenthesis(int n) {
List<String> ans = new ArrayList<>();
DFS(0, 0, n, "", ans);
return ans;
}
}
相关文章推荐
- LeetCode-22-Generate Parentheses(DFS/递归)-Medium
- leetcode-22-Generate Parentheses
- [Leetcode-22]Generate Parentheses 生成圆括号
- [leetcode 22]Generate Parentheses-----n对括号可以组成的括号对序列
- 【LeetCode】【Array】【22】Generate Parentheses
- LeetCode-22 Generate Parentheses(合法括号情况)
- LeetCode 22 — Generate Parentheses(C++ Java Python)
- leetcode[22]Generate Parentheses
- leetcode (22) - Generate Parentheses
- 【Leetcode-Medium-22】Generate Parentheses
- LeetCode 22 Generate Parentheses
- [LeetCode 22] Generate Parentheses
- leetcode 22 Generate Parentheses
- LeetCode Generate Parentheses DFS或者生产呢排列
- Leetcode22 Generate Parentheses
- LeetCode 22: Generate Parentheses
- Leetcode 22 Generate Parentheses
- Leetcode-22: Generate Parentheses
- LeetCode 22 Generate Parentheses
- [LeetCode]22 Generate Parentheses