22. Generate Parentheses**

来源:互联网 发布:enjoy it 编辑:程序博客网 时间:2024/06/07 09:58

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:

[  "((()))",  "(()())",  "(())()",  "()(())",  "()()()"]

public List<String> generateParenthesis(int n) {        List<String> list = new ArrayList<String>();        backtrack(list, "", 0, 0, n);        return list;    }        public void backtrack(List<String> list, String str, int open, int close, int max){                if(str.length() == max*2){            list.add(str);            return;        }                if(open < max)            backtrack(list, str+"(", open+1, close, max);        if(close < open)            backtrack(list, str+")", open, close+1, max);    }

注意:close<open

0 0
原创粉丝点击