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

JAVA学习-练习试用Java实现“括号生成”

问题:

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

示例 1:

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

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

1 <= n <= 8

解答思路:

以下是使用 Java 实现括号生成的代码:

import java.util.ArrayList;
import java.util.List;public class GenerateParentheses {public List<String> generateParenthesis(int n) {List<String> result = new ArrayList<>();backtrack(result, "", 0, 0, n);return result;}public void backtrack(List<String> result, String current, int open, int close, int max) {if (current.length() == max * 2) {result.add(current);return;}if (open < max) {backtrack(result, current + "(", open + 1, close, max);}if (close < open) {backtrack(result, current + ")", open, close + 1, max);}}public static void main(String[] args) {int n = 3;GenerateParentheses solution = new GenerateParentheses();List<String> parentheses = solution.generateParenthesis(n);for (String parenthesis : parentheses) {System.out.println(parenthesis);}}
}


上述代码中,定义了一个'generateParenthesis'方法,使用回溯法生成所有可能的括号组合。在'backtrack'方法中,根据当前的括号状态进行递归调用,当生成的括号长度达到指定长度时,将其添加到结果列表中。在'main'方法中,创建'GenerateParentheses'对象,并调用'generateParenthesis'方法生成括号组合并打印结果。

(文章为作者在学习java过程中的一些个人体会总结和借鉴,如有不当、错误的地方,请各位大佬批评指正,定当努力改正,如有侵权请联系作者删帖。)


http://www.mrgr.cn/news/49109.html

相关文章:

  • YOLO11改进|注意力机制篇|引入注意力机制Shuffle Attention
  • ubuntu20.4环境下gcc-aarch64交叉编译器的安装
  • 【SOP】迭代管理-checkList模版
  • 跨域问题及解决方案详解:同源策略与CORS机制
  • python 画同心圆/棋盘
  • FLASK 数据库建立以及部署和表的创建
  • 了解Python 中的 __class__ 属性
  • 企业架构蓝图:理论指导下的数字化转型实践路径
  • 基于ESP32与Raspberry Pi的智能家居物联网项目详解
  • 模型 知识诅咒
  • Golang | Leetcode Golang题解之第475题供暖器
  • 【C语言教程】【常用类库】(七)标准实用工具库 - <stdlib.h>
  • Python 中也支持多态(Polymorphism)
  • OpenAI 开源多智能体框架Swarm
  • 开源代码编译过程中遇到的问题(持续更新)
  • 大一高等数学速成指南
  • 《向量数据库指南》——构建高效知识图谱检索系统的实战策略
  • <<迷雾>> 第11章 全自动加法计算机(3)--存储器示例 示例电路
  • 使用libssh2上传下载文件及Makefile编写
  • Brave编译指南2024 Linux篇-初始化构建环境(六)