Generate Parentheses

来源:互联网 发布:免费网络图绘制软件 编辑:程序博客网 时间:2024/06/01 08:51

Q:

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:

public class Solution {    public List<String> generateParenthesis(int n) {        List<String> list = new ArrayList<String>();        String s = "";        generate(s, 0, 0, n, list);        return list;    }        public void generate(String s, int left, int right, int n, List<String> list) {        if (s.length() == 2*n) {            list.add(s);            return;        }        if (left < n) {            s = s + "(";            generate(s, left+1, right, n, list);            s = s.substring(0, s.length()-1);        }        if (left > right) {            s = s + ")";            generate(s, left, right+1, n, list);            s = s.substring(0, s.length()-1);        }            }}


0 0
原创粉丝点击