Recursion n对括号的组合 @CareerCup
来源:互联网 发布:ubuntu切换到登陆界面 编辑:程序博客网 时间:2024/06/05 05:27
看不太习惯书上写的递归,觉得没有自己写的清晰。
这道题唯一要满足的条件就是在任何时候,左括号数量一定要大等于右括号的数量。
package Recursion;import java.util.HashSet;import java.util.Set;/** *Implement an algorithm to print all valid (e.g., properly opened and closed) combinations of n-pairs of parentheses.EXAMPLE:input: 3 (e.g., 3 pairs of parentheses)output: ((())), (()()), (())(), ()(()), ()()()译文:实现一个算法打印出n对括号的有效组合。例如:输入:3 (3对括号)输出:((())), (()()), (())(), ()(()), ()()() * * */public class S9_6 {public static void main(String[] args) {Set<String> list = generateParens(3);for (String s : list) {System.out.println(s);}System.out.println(list.size());}public static Set<String> generateParens(int n){Set<String> set = new HashSet<String>();rec(set, n, 0, 0, "");return set;}public static void rec(Set<String> set, int n, int left, int right, String s){if(right > left){// 不合法的括号return;}if(left==n && right==n){// 成功找到一组set.add(s);return;}if(left>n || right>n){// 越界情况return;}rec(set, n, left+1, right, s+"(");// dfsrec(set, n, left, right+1, s+")");}}
- Recursion n对括号的组合 @CareerCup
- Recursion 计算表达式的括号组合 @CareerCup
- Recursion 硬币组合问题 @CareerCup
- N对括号的合法组合
- 输出n对括号的可能组合
- 输出n对符合的括号组合
- n对括号组合的所有情况
- 打印n对括号的全部n对有效组合
- 输入N对括号,输出正确的配对组合
- 打印n对括号匹配的所有组合
- 22.Generate Parentheses&n对括号的全部有效组合
- 打印n对括号的全部有效组合
- 打印N对括号的全部有效组合
- 打印n对括号的全部有效组合
- 【算法】打印N对合理括号组合
- 打印n对括号的全部有效组合(即左右括号正确配对)
- 实现一种算法,打印n对括号的全部有效组合(即左右括号正确配对)
- 给定n对括号,编写一个函数来生成正确括号的所有组合。
- C++ 输入输出
- Recursion 字符串的全排列 String Permutation @CareerCup
- Prim算法
- C++/CLI程序启动时_CrtIsValidHeapPointer(pUserData)错误
- 如何让搜索引擎抓取AJAX内容
- Recursion n对括号的组合 @CareerCup
- 本文简述了Ajax技术适用场景、Ajax不适用场景的具体情况以及应用时候存在的一些问题。
- Recursion 图像软件中的“填充”函数 @CareerCup
- Mockito
- Django 关系属性
- C# 3DES加密解密算法实例代码
- PHP获取当前url的具体方法
- PHP获取当前url路径的函数以及服务器变量
- php入门教程 第一个php程序