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+')');
    		}
    	}
    }
  • 相关阅读:
    关于echarts、layer.js和jqGrid的知识点
    Aspose.Cell和NPOI生成Excel文件2
    Aspose.Cell和NPOI生成Excel文件
    关于JS嵌套点击事件的问题。
    有关二维码学习小整理
    二维码
    微信扫码登录实现原理
    C#模拟Http与Https请求框架实例
    C#中调用user32.dll库的keybd_Event函数,操作键盘
    对象数组 深拷贝
  • 原文地址:https://www.cnblogs.com/strive-19970713/p/11287437.html
Copyright © 2011-2022 走看看