Generate Parentheses

来源:互联网 发布:mac无线鼠标没反应 编辑:程序博客网 时间:2024/06/16 14:28

DFS方法解这道题,假设手中拿着n个'('和n个’)', 每次放下一个,手中剩余的left不能比right少,再recusion.

public List<String> generateParenthesis(int n) {                List<String> ret = new ArrayList<String>();        //if(n == 0) return ret;        generate(n, n, "", ret);        return ret;    }        public void generate(int left, int right, String s, List<String> ret) {        if(left == 0 && right == 0) {            ret.add(s);            return;        }        else if(left > right) return;        if(left > 0) generate(left-1, right, s + "(", ret);        if(right > 0) generate(left, right-1, s + ")", ret);            }


0 0
原创粉丝点击