题目描述
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:
"((()))", "(()())", "(())()", "()(())", "()()()"
import java.util.*; public class Solution { public ArrayList<String> generateParenthesis(int n) { ArrayList<String> res = new ArrayList<String>(); helper("",res,n,0,0); return res; } public void helper (String curr,ArrayList<String> res,int n,int left,int right) { if(right == n) { res.add(curr); } if(left < n) helper (curr+"(",res,n,left+1,right); if(right < left) helper (curr+")",res,n,left,right+1); } }
use the recursive