leetcode------Generate Parentheses

3300 단어 LeetCode
제목:
Generate Parentheses
통과율:
32.3%
난이도:
중간
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=3이 있다면 세 개의'('와 세 개의')'가 있고 ()의 대칭을 만족시켜야 한다는 뜻이다.
귀속할 때부터 반드시 (, 그리고 수업은 두 갈래 나무로 간주된다. 왼쪽 나무는 (, 오른쪽 나무는) 뿌리 노드가 (,
(수량이 0이 아닐 때 (호출 귀속, (의 수량이 적은) 수량이 아닐 때 놓기) 계속 귀속은 구체적으로 코드를 보십시오.
 1 public class Solution {

 2     public ArrayList<String> generateParenthesis(int n) {

 3         ArrayList<String> res=new ArrayList<String>();

 4         if(n<1)return res;

 5         dfs(res,"",n,n);

 6         return res;

 7     }

 8     public void dfs(ArrayList<String> res,String tmp,int m,int n){

 9         if(m==0&&n==0){

10             res.add(tmp);

11         }

12         else{

13             if(m!=0)

14                 dfs(res,tmp+"(",m-1,n);

15             if(m<n&&n!=0)

16                dfs(res,tmp+")",m,n-1);

17         }

18     }

19 }

좋은 웹페이지 즐겨찾기