• 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+')');
    		}
    	}
    }
  • 相关阅读:
    String拷贝,构造和析构函数.
    得到透明画刷的颜色。
    程序关闭困难,析构函数执行不到的原因。
    CFileDialg文件后缀名的限制
    反转字符串数组,异或交换两个值
    C++ string在unicode下
    多线程中CString内存泄漏的解决方法。
    得到控件在窗口的位置
    学习进步的方法
    HyperLink与LinkButton的区别
  • 原文地址:https://www.cnblogs.com/strive-19970713/p/11287437.html
Copyright © 2020-2023  润新知