zoukankan      html  css  js  c++  java
  • Leetcode22. Generate Parentheses

    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:

    "((()))", "(()())", "(())()", "()(())", "()()()"

    solution:DFS模版

    package leetcode2;
    
    import java.util.ArrayList;
    
    public class Generate_parenthese {
        public static ArrayList<String> generateParenthesis(int n) {
            ArrayList<String> reArrayList=new ArrayList<String>();
            String s=new String();
            dfs(reArrayList,s,n,n); //DFS的模版递归 dfs(list<E>,E,deep,somethingConstant)
            return reArrayList;
        }
    
       public static void dfs(ArrayList<String> reArrayList, String s, int left,int right) {
            // TODO Auto-generated method stub
            // 先考虑deep极值,此处为left,right个数,直接return
           if(right<left){
               return;
           }
           if(left==0&&right==0){  //当括号都用完时,将s存入list中
               reArrayList.add(s);
               return;
           }
           if(left>0){
               dfs(reArrayList, s+'(', left-1, right);
           }
           if(right>0){
               dfs(reArrayList, s+')', left, right-1);
           }
        }
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            System.out.println(generateParenthesis(3));
        }
    
    }
  • 相关阅读:
    EF工作流程
    EF简单的CodeFirst示例(自己创建数据库,不使用数据迁移)
    VS2017连接MySQL数据库
    Entity Framework简介
    ADO.NET
    linq连接
    linq语法
    linq和转换运算符
    学习MVC之前必须掌握的c#知识
    java 中 System
  • 原文地址:https://www.cnblogs.com/joannacode/p/4389459.html
Copyright © 2011-2022 走看看