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

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.lryc.cn/news/616211.html

相关文章:

  • 机器学习数学基础:46.Mann-Kendall 序贯检验(Sequential MK Test)
  • AtomicStampedReference解决方案
  • QT常用控件三
  • 浏览器CEFSharp88+X86+win7 之js交互开启(五)
  • 深入理解C语言一维数组的本质:数组名、指针常量与访问细节
  • 女子试穿4条裤子留下血渍赔50元引争议:消费责任边界在哪?
  • 无须炮解,打开即是Pro版
  • (LeetCode 每日一题) 869. 重新排序得到 2 的幂 (哈希表+枚举)
  • Python中随机化列表元素的详细方法
  • LintCode第604题-滑动窗口内数的和
  • DAY36打卡
  • 自创论述类文本阅读:论温泉
  • ubuntu 安装内核模块驱动 DKMS 介绍
  • 基于Ubuntu20.04的环境,编译QT5.15.17源码
  • ubuntu22.04+samba
  • 正则表达式常用语法参考
  • 零基础学Java第三讲---运算符
  • CSS优先级、HTTP响应状态码
  • ​Microsoft Store 离线下载软件
  • Unity笔记(四)——Camera、碰撞检测函数、刚体加力、音频
  • 电脑使用“碎片整理”程序的作用
  • Java I/O 流:从字节流到 NIO 的进化与应用
  • idea中使用maven造成每次都打印日志
  • IDEA官网下载及其他版本软件下载地址
  • Ubuntu 安装 Elasticsearch
  • 【0基础PS】PS工具详解--缩放工具
  • 【python】import与include的区别
  • 运维学习Day20——MariaDB数据库管理
  • 生产环境中Spring Cloud Sleuth与Zipkin分布式链路追踪实战经验分享
  • LeetCode_哈希表