【力扣 Hot100 | 第四天】4.15(括号生成)

在这里插入图片描述

文章目录

  • 4.括号生成
    • 4.1题目
    • 4.2解法:回溯
      • 4.2.1回溯思路
        • (1)函数返回值以及参数
        • (2)终止条件
        • (3)遍历过程
      • 4.2.2代码

4.括号生成

4.1题目

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

  • 示例一:
输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]
  • 示例二:
输入:n = 1
输出:["()"]

4.2解法:回溯

  • 此解法当n>=8时,超出时间限制

4.2.1回溯思路

(1)函数返回值以及参数
private void backing(int startIndex,int n)
(2)终止条件
if(sb.length() == 2*n){//判断当前路径是否为有效括号if(isValid(sb)){res.add(new String(sb.toString()));}return;
}
(3)遍历过程
for(int i=startIndex;i<2*n;i++){sb.append('(');backing(i+1,n);sb.deleteCharAt(sb.length()-1);if(i!=0){sb.append(')');backing(i+1,n);sb.deleteCharAt(sb.length()-1);}
}
  • 验证是否为回文串方法
	public boolean isValid(StringBuffer sb){Deque<Character> deque=new LinkedList<>();for(int i=0;i<sb.length() ;i++){if(sb.charAt(i)=='('){//左括号deque.push('(');}else if( !deque.isEmpty() && deque.peek()=='(' ){deque.pop();}else{return false;}}return deque.isEmpty();}

4.2.2代码

	List<String> res=new ArrayList<>();StringBuffer sb=new StringBuffer();public List<String> generateParenthesis(int n) {backing(0,n);return res;}private void backing(int startIndex,int n){if(sb.length() == 2*n){//判断当前路径是否为有效括号if(isValid(sb)){res.add(new String(sb.toString()));}return;}for(int i=startIndex;i<2*n;i++){sb.append('(');backing(i+1,n);sb.deleteCharAt(sb.length()-1);if(i!=0){sb.append(')');backing(i+1,n);sb.deleteCharAt(sb.length()-1);}}}public boolean isValid(StringBuffer sb){Deque<Character> deque=new LinkedList<>();for(int i=0;i<sb.length() ;i++){if(sb.charAt(i)=='('){//左括号deque.push('(');}else if( !deque.isEmpty() && deque.peek()=='(' ){deque.pop();}else{return false;}}return deque.isEmpty();}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/820045.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三斜求积术 To 海伦公式 ← 三角形面积

【知识点&#xff1a;三斜求积术】 所谓秦九韶的三斜求积术&#xff0c;即如果已知三角形的边长a&#xff0c;b&#xff0c;c&#xff0c;可求得该三角形的面积为&#xff1a; 而由三斜求积术可推得海伦公式。过程如下&#xff1a; 其中&#xff0c; 上面推导公式的 Latex 代码…

​​​​网络编程探索系列之——广播原理剖析

hello &#xff01;大家好呀&#xff01; 欢迎大家来到我的网络编程系列之广播原理剖析&#xff0c;在这篇文章中&#xff0c; 你将会学习到如何在网络编程中利用广播来与局域网内加入某个特定广播组的主机&#xff01; 希望这篇文章能对你有所帮助&#xff0c;大家要是觉得我写…

从零开始写 Docker(十一)---实现 mydocker exec 进入容器内部

本文为从零开始写 Docker 系列第十一篇&#xff0c;实现类似 docker exec 的功能&#xff0c;使得我们能够进入到指定容器内部。 完整代码见&#xff1a;https://github.com/lixd/mydocker 欢迎 Star 推荐阅读以下文章对 docker 基本实现有一个大致认识&#xff1a; 核心原理&…

「51媒体」如何有效进行媒体邀约,提升宣传传播效果?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 进行有效的媒体邀约&#xff0c;提升宣传传播效果的关键在于策略性和专业性。以下是具体的做法&#xff1a; 明确目标&#xff1a;要确立清晰的品牌推广目标和策略&#xff0c;包括确定目…

软考-系统集成项目管理中级--范围管理(输入输出很重要!!!)

本章历年考题分值统计 本章重点常考知识点汇总清单(掌握部分可直接理解记忆) 12、标杆对照将实际或计划的做法(如流程和操作过程)与其他可比组织的做法进行比较&#xff0c;以便识别最佳实践&#xff0c;形成改进意见&#xff0c;并为绩效考核提供依据。标杆对照所采用的可比组…

【YOLOv8改进[损失函数]】使用结合InnerIoU和Focaler的各种损失函数助力YOLOv8更优秀

目录 一 回归损失函数&#xff08;Bounding Box Regression Loss&#xff09; 1 Inner-IoU 2 Focaler-IoU&#xff1a;更聚焦的IoU损失 二 改进YOLOv8的损失函数 1 总体修改 ① ultralytics/utils/metrics.py文件 ② ultralytics/utils/loss.py文件 ③ ultralytics/uti…

【LeetCode热题100】【数组】除自身以外数组的乘积

题目链接&#xff1a;238. 除自身以外数组的乘积 - 力扣&#xff08;LeetCode&#xff09; 要找除开本身以外其他元素的乘积&#xff0c;如果可以用除法的话&#xff0c;直接累积所有元素然后除以每个元素 不能用除法&#xff0c;可以用两个数组计算元素的前缀乘积和后缀乘积…

windows桌面程序与服务程序通过公共文件目录交互

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 windows权限管理越来越严格&am…

亚马逊云科技直冲云霄训练营活动开始啦(送考试半价券)

小李哥分享的是亚马逊科技官方免费直冲云霄训练营学习活动&#xff0c;通过该活动可以薅到以下的羊毛 1️⃣免费系统性技能培训&#xff0c;成为AWS技术大牛 2️⃣考试半价券&#xff0c;最高可省1086元人民币 3️⃣分享活动获得精美礼品 4️⃣亚马逊云科技年度全球技术大会门票…

什么是T型槽铸铁平板中内应力——河北北重厂家

T型槽铸铁平板中的内应力指的是平板内部受到的内部力&#xff0c;包括拉应力和剪应力。在T型槽铸铁平板使用过程中&#xff0c;由于自身重量、外力加载等原因&#xff0c;会产生内部应力。这些内应力是平板内部各部分之间的相互作用力&#xff0c;使得平板各部分受到不同的拉伸…

sqlmap靶机注入详细教程

SQLmap是一款自动化的SQL注入工具&#xff0c;它可以帮助安全研究人员和渗透测试人员检测和利用SQL注入漏洞。下面是一个简单的SQLmap渗透注入靶机的教程&#xff1a; 准备环境&#xff1a; 安装Kali Linux或其他包含SQLmap的渗透测试操作系统。 确保你的靶机&#xff08;即被…

FreeSWITCH 1.10.10 简单图形化界面1 - docker/脚本/ISO镜像安装[YouCanSee]

FreeSWITCH 1.10.10 简单图形化界面1 - docker/脚本/ISO镜像安装 0. 界面预览00. 使用手册在这里1. Docker安装1.1 下载docker镜像1.2 启动docker镜像1.3 登录 2. 脚本安装2.1 下载2.2 安装2.3 登录2.4 卸载程序 3. 镜像安装3.1 下载镜像3.2 安装镜像3.3 登录 0. 界面预览 网站…

kubernetes docker版本安装测试

文章目录 测试环境kubernetes安装环境配置安装程序下载镜像初始化reset环境init构建kubernetes配置授权信息配置网络插件查看状态 简单实例测试 测试环境 [rootlocalhost ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)kubernetes安装 参考kuberneter文档…

A12 STM32_HAL库函数 之 HAL-ETH通用驱动 -- A -- 所有函数的介绍及使用

A12 STM32_HAL库函数 之 HAL-ETH通用驱动 -- A -- 所有函数的介绍及使用 1 通用定时器&#xff08;TIM&#xff09;预览1.1 HAL_ETH_Init1.2 HAL_ETH_DeInit1.3 HAL_ETH_DMATxDescListInit1.4 HAL_ETH_DMARxDescListInit1.5 HAL_ETH_MspInit1.6 HAL_ETH_MspDeInit1.7 HAL_ETH_T…

vmware workstation 17 pro密钥最新大全

最新密匙 4A4RR-813DK-M81A9-4U35H-06KND NZ4RR-FTK5H-H81C1-Q30QH-1V2LA JU090-6039P-08409-8J0QH-2YR7F 4Y09U-AJK97-089Z0-A3054-83KLA 4C21U-2KK9Q-M8130-4V2QH-CF810 MC60H-DWHD5-H80U9-6V85M-8280D 通用密钥 17&#xff1a;JU090-6039P-08409-8J0QH-2YR7F 22H2&…

基于SpringBoot+Vue的在线教育系统(源码+文档+包运行)

一.系统概述 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了在线教育系统的开发全过程。通过分析在线教育系统管理的不足&#xff0c;创建了一个计算机管理在线教育系统的方案。文章介绍了在线教育系统的系统分析部…

忽然想起10多年前使用的sip电话服务,还买过一个带sip服务的linksys路由器的。再次回顾一下,用yate搭建服务器。

使用yate搭建sip服务器&#xff1a; 1.下载服务软件&#xff1a; 登录https://yate.ro/下载对应的服务软件&#xff0c;可以https://docs.yate.ro/wiki/Download去下载&#xff0c;网站可以用bing搜索到&#xff0c;百度搜索不到。 下载后安装好。 2.修改配置&#xff1a;windo…

安卓手机app开发_媒体内容开发_ExoPlayer管理音频焦点

安卓手机app开发_媒体内容开发_ExoPlayer管理音频焦点 目录 概述 安卓12(API级别31)及以上 存在的音频焦点的行为 自动地减少音量 安卓8(API级别26)到安卓11(API级别30) 安卓7.1(API级别25)及以下 焦点的临时性释放 焦点的永久性释放 概述

MySQL truncate table 与 delete 清空表的区别和坑

拓展阅读 MySQL View MySQL truncate table 与 delete 清空表的区别和坑 MySQL Ruler mysql 日常开发规范 MySQL datetime timestamp 以及如何自动更新&#xff0c;如何实现范围查询 MySQL 06 mysql 如何实现类似 oracle 的 merge into MySQL 05 MySQL入门教程&#xff0…

ETL工具-nifi干货系列 第十三讲 nifi处理器QueryDatabaseTable查询表数据实战教程

1、处理器QueryDatabaseTable&#xff0c;该组件生成一个 SQL 查询&#xff0c;或者使用用户提供的语句&#xff0c;并执行它以获取所有在指定的最大值列中值大于先前所见最大值的行。查询结果将被转换为 Avro 格式&#xff0c;如下图所示&#xff1a; 本示例通过QueryDatabase…