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+')');
    		}
    	}
    }
  • 相关阅读:
    js:语言精髓笔记1--标识符与基本类型
    ember.js:使用笔记4 数组数据的分组显示
    ember.js:使用笔记3 活用{{bind-attr}}
    ember.js:使用笔记2-数据删除与存储
    ember.js:使用笔记1-数组数据统一显示
    工具:使用jekyll生成静态网站
    css:删除:×的效果
    js写随机一个颜色
    回调函数的使用
    jquery获取select标签的选中元素
  • 原文地址:https://www.cnblogs.com/strive-19970713/p/11287437.html
Copyright © 2011-2022 走看看