括号生成+力扣

题目

题目链接

. - 力扣(LeetCode)

题目描述

代码实现

class Solution {
    int left, right;
    vector<string> ret;
    string path;
public:
    vector<string> generateParenthesis(int n) {
        dfs(n);
        return ret;
    }
    void dfs(int n){
        if(right == n){
            ret.push_back(path);
            return;
        }
        if(left < n){
            path.push_back('(');
            left++;
            dfs(n);
            path.pop_back();
            left--;
        }
        if(right < left){
            path.push_back(')');
            right++;
            dfs(n);
            path.pop_back();
            right--;
        }
    }
};

思路分析

1、有效符号,需要左括号 = 右括号

2、从头开始的任意一个子串的左括号需要>=右括号

3、再说剪枝,左括号的数量不能超过n右括号数量少于左括号。只有这两种情况才能继续添加左括号或者右括号的。

4、递归出口就是右括号数量等于n的时候。

下边是决策图的示意图,可供参考

相关推荐

  1. 22. 括号生成

    2024-03-15 19:12:03       33 阅读
  2. 回溯-dfs-括号生成

    2024-03-15 19:12:03       39 阅读
  3. 刷题之22.括号生成

    2024-03-15 19:12:03       47 阅读
  4. 第二十二题——括号生成

    2024-03-15 19:12:03       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-15 19:12:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-15 19:12:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-15 19:12:03       87 阅读
  4. Python语言-面向对象

    2024-03-15 19:12:03       96 阅读

热门阅读

  1. strlen 与 sizeof 详解

    2024-03-15 19:12:03       44 阅读
  2. Vue:封装响应式数据的防抖函数

    2024-03-15 19:12:03       43 阅读
  3. 洛谷 [NOIP2003 普及组] 乒乓球

    2024-03-15 19:12:03       42 阅读
  4. Lambda 表达式

    2024-03-15 19:12:03       39 阅读
  5. UDP-创建群聊

    2024-03-15 19:12:03       35 阅读
  6. Redis的持久化——深入探究底层原理

    2024-03-15 19:12:03       41 阅读
  7. 虚方法的定义和使用

    2024-03-15 19:12:03       42 阅读
  8. TCP的三次握手和四次挥手

    2024-03-15 19:12:03       40 阅读
  9. qt5-入门-主窗口设计1

    2024-03-15 19:12:03       42 阅读
  10. tkinter页面及treeview布局

    2024-03-15 19:12:03       34 阅读
  11. 对象转数组,数组转对象的常用方法

    2024-03-15 19:12:03       43 阅读