let 22 generate parentheses

来源:互联网 发布:python爬虫开发 编辑:程序博客网 时间:2024/05/22 11:33

主题思想: 此题是一道搜索题,后者是一道回溯题,解法有dfs和递归

一种解法:

class Solution {    public List<String> generateParenthesis(int n) {        List<String> list=new ArrayList<>();        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);        return ;    }}