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

22. 括号生成

题目描述

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

示例 1:

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

示例 2:

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

提示:

  • 1 <= n <= 8

解答

class Solution {
public:vector<string> res;// left:剩余可用左括号数// right:剩余可用右括号数void dfs(string str, int left, int right){if(left == 0 && right == 0){res.push_back(str);return ;}if(left == right) // 确保左括号 大于等于 右括号{dfs(str + '(', left - 1, right);}else if(left < right){if(left > 0){dfs(str + '(', left - 1, right);}dfs(str + ')', left, right - 1);}}vector<string> generateParenthesis(int n) {// 核心思路:生成左右括号时,要满足:左括号数 >= 右括号数// 推出:剩余左括号数 <= 右括号数dfs("", n, n);return res;}
};
http://www.lryc.cn/news/97486.html

相关文章:

  • WPF实战学习笔记05-首页界面
  • 一文带你迅速入门SprIngMVC,看这一篇就足够了!
  • js路由跳转时放弃正在pending的请求
  • LeetCode(sql)-0723
  • 【C++】开源:grpc远程过程调用(RPC)配置与使用
  • rabbitmq模块启动报java.net.SocketException: socket closed的解决方法
  • uni-app 中定时器的使用
  • 基于物联网、视频监控与AI视觉技术的智慧电厂项目智能化改造方案
  • 内网穿透远程查看内网监控摄像头
  • 【Flume 01】Flume简介、部署、组件
  • 三款即时通讯工具推荐:J2L3x、Telegram、WhatsApp 你选哪个?
  • C++ 单例模式(介绍+实现)
  • uniapp项目集成本地插件
  • MFC CList 类的使用
  • iptable防火墙
  • 二、SQL-5.DQL-9).执行顺序
  • Ubuntu通用镜像加速配置
  • Linux安装部署Nacos和sentinel
  • Vue3+ElementPlus+TS实现右上角消息数量实时更新
  • 去除重复字母(力扣)贪心 + 队列 JAVA
  • Spring,SpringBoot,Spring MVC的区别是什么
  • 在CSDN学Golang云原生(Docker镜像)
  • Hive窗口函数大全
  • 达闼面试(部分)(未完全解析)
  • Makefile常用函数
  • mysql的一些知识整理
  • 修改密码和再次确认密码的js和element-ui的使用
  • 蓝桥杯专题-真题版含答案-【垒骰子_动态规划】【抽签】【平方怪圈】【凑算式】
  • kubernetes调试利器——kubectl debug工具
  • 浅谈es5如何保证并发请求的返回顺序