回溯生成括号生成 3 对

问题描述

    public List<String> generateParenthesis(int n) {
        List<String> list = new ArrayList<>();
        backtrack(list,"",3); 
        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);
    }
}

谁能解释回溯逻辑。我试过调试,但不能完全理解这个概念。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)