当前位置: 首页 > ds >正文

LeetCode 括号生成

22.括号生成

题目描述

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

示例 1:

输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]

示例 2:

输入:n = 1
输出:["()"]

提示:

  • 1 <= n <= 8

解题思路

感觉这道题重要的是弄懂“如何判断括号是有效的”,加左括号的条件是left<n,加右括号的条件是right<left

第一个位置永远放的都是左括号,每对组合里都是n个左括号,n个右括号

  • 字符串也可以用push_back()函数添加字符,但注意括号里是单引号’’

在这里插入图片描述

代码

class Solution {
public:
//括号配对规律,怎么检查他是有效的?3对,层数呢vector<string> generateParenthesis(int n) {vector<string> res;int left=0,right=0;string temp;dfs(res,temp,left,right,n);return res;}void dfs(vector<string>& res,string temp,int left,int right,int n){if(left==n&&right==n){res.push_back(temp);return;}if(left<n){temp.push_back('(');dfs(res,temp,left+1,right,n);temp.pop_back();}if(right<left){temp.push_back(')');dfs(res,temp,left,right+1,n);temp.pop_back();}}
};
http://www.xdnf.cn/news/17610.html

相关文章:

  • Hadoop MapReduce过程
  • LeetCode - 搜索插入位置 / 排序链表
  • (LeetCode 面试经典 150 题) 104. 二叉树的最大深度 (深度优先搜索dfs)
  • 【Docker实战入门】从核心概念到镜像构建
  • JavaScript的 fetch() 方法 笔记250810
  • CSS优先级、HTTP响应状态码
  • Android的事件分发流程、Kotlin协程、4大组件、Handler机制、架构设计、性能优化、内存泄漏
  • 第4章 程序段的反复执行2while语句P128练习题(题及答案)
  • 智慧农业-无人机视角庄稼倒伏农作物倒伏检测数据集VOC+YOLO格式541张1类别
  • VSCode添加Python、Java注释技巧、模板
  • 疏老师-python训练营-Day40训练和测试的规范写法
  • NumPy性能飞跃秘籍:向量化计算如何提升400倍运算效率?
  • istio笔记03--快速上手多集群mesh
  • 【C语言】深入探索预处理
  • Matlab 基于BP神经网络结合Bagging(BP-Bagging)集成算法的单变量时序预测 (单输入单输出)
  • 带冷端补偿的热电偶采集方案MAX31855
  • Dell PowerEdge: Servers by generation (按代系划分的服务器)
  • 【渲染流水线】[几何阶段]-[图元装配]以UnityURP为例
  • C++2024 年一级
  • Cursor设置
  • 【机器学习深度学习】模型选型:如何根据现有设备选择合适的训练模型
  • 【面试场景题】微博热点新闻系统设计方案
  • 一个“加锁无效“的诡异现象
  • #C语言——刷题攻略:牛客编程入门训练(七):分支控制(一)-- 涉及 %c前加空格:忽略起首的空白字符
  • Spring Boot Starter 自动化配置原理深度剖析
  • 把大模型“关进冰箱”——基于知识蒸馏 + 动态量化的小型化实战笔记
  • 推客系统开发全攻略:从架构设计到高并发实战
  • 【Python 高频 API 速学 ②】
  • 让大模型 “睡觉”:把版本迭代当作人类睡眠来设计(附可直接改造的训练作息表与代码)
  • 【Task2】【Datawhale AI夏令营】多模态RAG