zoukankan      html  css  js  c++  java
  • generate-parentheses

    /**
    *
    * @author gentleKay
    * 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=3,解集为:
    * "((()))", "(()())", "(())()", "()(())", "()()()"
    */

      

    import java.util.ArrayList;
    
    /**
     * 
     * @author gentleKay
     * 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=3,解集为:
     *  "((()))", "(()())", "(())()", "()(())", "()()()"
     */
    
    public class Main30 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		System.out.println(Main30.generateParenthesis(3));
    	}
    	
    	public static ArrayList<String> generateParenthesis(int n) {
    		ArrayList<String> list = new ArrayList<>();
    		String str = "";
    		generate(list, n, n,str);
    		return list;
        }
    	
    	public static void generate(ArrayList<String> list, int left, int right, String str) {
    		if (left == 0 && right == 0) {
    			list.add(str);
    			return ;
    		}
    		if (left > 0) {
    			generate(list, left-1,right, str+'(');
    		}
    		if (right > left) {
    			generate(list,left,right-1, str+')');
    		}
    	}
    }
  • 相关阅读:
    C#=>递归反转栈
    C#=> 栈模仿堆的操作
    C# 栈=>随时读取栈中最小值
    vijos1574 摇钱树
    (二叉)堆
    分块大法好
    list
    动态规划——状压、树形
    区间动规平行四边形优化
    最长公共子序列(LCS)
  • 原文地址:https://www.cnblogs.com/strive-19970713/p/11287437.html
Copyright © 2011-2022 走看看