zoukankan      html  css  js  c++  java
  • dfs · leetcode-22.产生括号组?

    题面

    Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses 
    给定int n,代表n组括号,编码生成所有有效的括号组合(即符合括号嵌套规则)

     样例

    given n = 3, a solution set is: 
    [ 
      "((()))", 
      "(()())", 
      "(())()", 
      "()(())", 
      "()()()" 
    ]

    思路

    dfs

    源码

     1 class Solution {
     2 public:
     3     vector<string> generateParenthesis(int n) {
     4         vector<string> res;
     5         dfs("", 0, 0, res, n);
     6         return res;
     7     }
     8     //dfs深搜
     9     void dfs(string tmp, int l, int r, vector<string> &res, int n)
    10     {
    11         if(l == n && r == n)
    12         {
    13             res.push_back(tmp);
    14             return ;
    15         }
    16         if(l < n)
    17             dfs(tmp+"(", l+1, r, res, n);
    18         if(l > r)
    19             dfs(tmp+")", l, r+1, res, n);
    20     }
    21 };
  • 相关阅读:
    Cookie
    laydate
    layer
    字符流
    java虚拟机学习(四)--垃圾收集算法
    java虚拟机学习(三)
    java虚拟机学习(二)
    java虚拟机学习(一)
    Mybatis学习(一)
    mysql数据库面试总结(一)
  • 原文地址:https://www.cnblogs.com/yocichen/p/10874799.html
Copyright © 2011-2022 走看看