本文共 609 字,大约阅读时间需要 2 分钟。
class Solution { Listret; public List generateParenthesis(int n) { ret=new ArrayList<>(); dfs(n,"",0,0); return ret; } //要保证字符串里面左括号数要大于等于右括号数 l为字符串左括号数 r为右括号数 public void dfs(int n,String s,int l,int r){ //当前所加的括号不满足条件 直接return返回上一层方法s中的括号减一 if(l n||r>n) return; if(l+r==(n<<1)){ //l + r == 2*n 说明ok了 ret.add(s); return;//返回上一层看看有没有其他的情况 } dfs(n,s+"(",l+1,r);//当这个方法是return结束的他会回到上一层方法,相当于(没有加 dfs(n,s+')',l,r+1);//当这个方法是return结束的他会回到上一层方法,相当于)没有加 }}
转载地址:http://rmhzi.baihongyu.com/