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

2025年- H73-Lc181--22.括号生成(回溯,组合)--Java版

1.题目描述
在这里插入图片描述

2.思路
在这里插入图片描述
在这里插入图片描述
(1)终止条件:如果当前字符串长度为 2 * n,说明括号已经填满(n 个左括号和 n 个右括号),加入结果列表并返回。
(2)如果还没用完所有的左括号(open < n),就可以继续加左括号。递归调用:左括号数量加 1,继续构造。回溯关键步骤:撤销上一步加的括号,回到上一个状态,尝试其他组合。
(3)如果当前右括号数量比左括号少(close < open),则可以加一个右括号。
与左括号逻辑类似:加右括号 → 递归 → 撤销(回溯)。
(4)new stringbuffer()是可变字符串长度

3.代码实现

import java.util.ArrayList;
import java.util.List;public class H22 {public List<String> generateParenthesis(int n) {//保存括号字符串的结果List<String> result=new ArrayList<>();//可变字符串,存储回溯过程中的括号StringBuffer sb=new StringBuffer();//第1个0代表左括号的数量,第2个0代表右括号的数量,n代表括号对的数量backTracking(result,sb,0,0,n);return result;}public void backTracking(List<String> result,StringBuffer cur,int left,int right,int n){if(cur.length()==n*2){result.add(cur.toString());}//先拿左括号和要生成的括号对数进行比较,之后左括号填满之后,开始补齐右括号,如果右括号数量小于左括号数量,补齐右括号if(left<n)//如果左括号小于输入的括号对数{cur.append('(');backTracking(result,cur,left+1,right,n);cur.deleteCharAt(cur.length()-1);//cur.length()-1是整数,cur是可变字符串,所以要用到cur.deleteCharAt(index)}if(right<left){//右括号数量少(右括号小于左括号),开始补齐右括号cur.append(')');backTracking(result,cur,left,right+1,n);cur.deleteCharAt(cur.length()-1);}}public static void main(String[] args){H22 test=new H22();int n=3;List<String> ans=test.generateParenthesis(n);System.out.print(ans);}
}
http://www.xdnf.cn/news/12257.html

相关文章:

  • 【C++进阶篇】C++11新特性(中篇)
  • AI辅助编程30天学习计划
  • JavaScript 循环方法对比指南
  • python基础day05
  • 【Hot 100】322. 零钱兑换
  • ABB 1MRK002247-Apr04保护继电器模块技术分析
  • 示波器电流探头校准规范指南
  • 操作系统中的设备管理,Linux下的I/O
  • mime嗅探的默认行为及Markdown文件响应格式
  • 小白升级的路-电子电路
  • Openldap 数据迁移后用户条目中 memberOf 反向属性丢失
  • 物料转运人形机器人适合应用于那些行业?解锁千行百业的智慧物流革命
  • 【Fiddler抓取手机数据包】
  • BT Panel密码修改
  • C语言| 指针引用数组元素
  • Windows上共享文件夹给Linux使用
  • 技术文档写作全攻略
  • 仿真每日一练 | Workbench手机后盖壳体类静力学分析
  • ROUGE评测指标深度解析
  • AD-线宽规则和过孔规则不生效
  • 在MATLAB中使用自定义的ROS2消息
  • MySQL中关于事务和锁的常见执行命令整理包括版本区别
  • Git Patch 使用详解:生成、应用与多提交合并导出
  • 炉石传说 第八次CCF-CSP计算机软件能力认证
  • 【大模型推理加速】MOE加速比与batchsize 关系
  • 某药监局药品详情sign值逆向
  • 第12期_网站搭建_几时网络验证1.3二改源码包2024 软件卡密系统 虚拟主机搭建笔记
  • linux下覆盖率测试总结
  • SQL Server相关的sql语句
  • React Hooks 指南:何时使用 useEffect ?