*LeetCode-Generate Parentheses

来源:互联网 发布:中国留学生 欧洲 数据 编辑:程序博客网 时间:2024/06/05 17:33

想到了要用recursive 但是没有想清楚helper function要怎样传参 

思想就是 记录还有几个left可以用 几个left需要闭合

并且要把list 和整个string传下去 不是每层都add到list 而是这个string结束 即没有可用的left 没有需要闭合的left的时候

public class Solution {    public List<String> generateParenthesis(int n) {        List<String> list = new ArrayList<String>();        add( list, "", n, 0);        return list;    }    void add ( List<String> list, String str, int left, int right ){        if ( left == 0 && right == 0) {            list.add(str);            str = "";        }        if ( left > 0)            add ( list, str + '(', left -1, right + 1);        if ( right > 0 )            add ( list, str + ')', left, right - 1);    }}


0 0
原创粉丝点击