Generate Parentheses

简介: Generate Parentheses 给定一个数字n,生成符合要求的n对括号 Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.

Generate Parentheses

给定一个数字n,生成符合要求的n对括号

Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.

For example, given n = 3, a solution set is:

"((()))", "(()())", "(())()", "()(())", "()()()"

 

 1 package com.rust.TestString;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 class solution {
 7     List<String> res = new ArrayList<String>();
 8     public List<String> generateParenthesis(int n) {
 9         if (n == 0) {
10             res.add("");
11             return res;
12         }
13         addBrackets("", 0, 0, n);//这个递归并没有返回的条件,跑到完为止
14         return res;
15     }
16     public void addBrackets(String str,int leftB,int rightB,int n) {
17         if (leftB == n && rightB == n) {
18             res.add(str);
19         }// 每次递归进来,根据现有情况,还会分割成不同的情况
20         if (leftB < n) {
21             addBrackets(str + "(", leftB + 1, rightB, n);
22         } 
23         if (rightB < leftB) {
24             addBrackets(str + ")", leftB, rightB + 1, n);
25         }
26     }
27 }
28 public class GenerateParentheses {
29     public static void main(String args[]){
30         solution output = new solution();
31         List<String> out = output.generateParenthesis(3);
32         System.out.println(out.size());
33         for (int i = 0; i < out.size(); i++) {
34             System.out.println(out.get(i));
35         }
36     }
37 }

 

目录
相关文章
|
JavaScript 前端开发 Java
Vue路由与nodejs下载安装及环境变量的配置
Vue路由与nodejs下载安装及环境变量的配置
234 0
|
SQL 存储 JSON
更快更强,SLS 推出高性能 SPL 日志查询模式
从海量的日志数据中,按照各种灵活的条件进行即时查询搜索,是可观测场景下的基本需求。本文介绍了 SLS 新推出的高性能 SPL 日志查询模式,支持 Unix 风格级联管道式语法,以及各种丰富的 SQL 处理函数。同时通过计算下推、向量化计算等优化,使得 SPL 查询可以在数秒内处理亿级数据,并支持 SPL 过滤结果分布图、随机翻页等特性。
13450 212
|
存储 C语言
【C语言】bool 关键字详解
`bool` 关键字在C语言中用于表示布尔类型(Boolean Type),它只有两个取值:`true`(真)和 `false`(假)。在标准的C90和C99中并没有直接支持布尔类型,但在C99标准中引入了`<stdbool.h>`头文件来提供布尔类型的支持。
480 1
|
消息中间件 敏捷开发 API
后端开发中的微服务架构实践
【7月更文挑战第25天】在现代软件开发领域,微服务架构已经成为一种趋势,它通过将复杂应用拆分成小型、独立的服务来促进敏捷开发和部署。本篇文章将深入探讨微服务的核心概念、设计原则、以及在实际后端开发中的应用案例,旨在为读者提供一套完整的微服务实施指南。
|
Kubernetes 网络安全 iOS开发
electerm工具
electerm工具
|
存储 弹性计算 运维
阿里云无影云电脑详细介绍_无影云桌面_桌面即服务DaaS
阿里云无影云电脑详细介绍_无影云桌面_桌面即服务DaaS
795 0
|
运维 网络协议 算法
CCNP必备:Linux网络及TCP、IP协议详解(三)|学习笔记
快速学习CCNP必备:Linux网络及TCP、IP协议详解
CCNP必备:Linux网络及TCP、IP协议详解(三)|学习笔记
|
弹性计算 运维 监控
企业级运维之云原生与Kubernetes实战课程 - 第三章第6讲 实验三:灰度发布
通过ingress实现灰度发布,实现权重灰度和根据header灰度。
企业级运维之云原生与Kubernetes实战课程 - 第三章第6讲 实验三:灰度发布
|
SQL 弹性计算 关系型数据库
冬季实战营第一期:从零到一上手玩转云服务器场景体验报告之使用 PolarDB 和 ECS 搭建门户网站
冬季实战营第一期:从零到一上手玩转云服务器场景体验报告之使用 PolarDB 和 ECS 搭建门户网站
504 0
冬季实战营第一期:从零到一上手玩转云服务器场景体验报告之使用  PolarDB 和 ECS 搭建门户网站
1170:反着来(Floyd)
相信大家都会解决有向图的最短路问题。这次我们反着来,给你一个有向图中每一对顶点之间的最短路的长度,请你计算出原图中最少可能包含多少条边。