博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode -- Generate Parentheses
阅读量:7088 次
发布时间:2019-06-28

本文共 1282 字,大约阅读时间需要 4 分钟。

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:

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

典型的递归。一步步构造字符串。当左括号出现次数<n时,就可以放置新的左括号。当右括号出现次数小于左括号出现次数时,就可以放置新的右括号。

 

1 public class Solution { 2     public ArrayList
generateParenthesis(int n) { 3 // Start typing your Java solution below 4 // DO NOT write main() function 5 ArrayList
result = new ArrayList
(); 6 if(n != 0){ 7 generate(result, "", 0, 0, 0, n); 8 } 9 return result;10 }11 12 public void generate(ArrayList
result, String tmp, int deep, int left, int right, int n){13 if(deep == 2 * n){14 result.add(tmp);15 return;16 }17 18 if(left < n){19 tmp += "(";20 generate(result, tmp, deep + 1, left + 1, right, n);21 tmp = tmp.substring(0, tmp.length() - 1);22 }23 24 if(right < left){25 tmp += ")";26 generate(result, tmp, deep + 1, left, right + 1, n);27 tmp = tmp.substring(0, tmp.length() - 1);28 }29 30 }31 }

 

转载地址:http://jayql.baihongyu.com/

你可能感兴趣的文章
LeetCode 448 Find All Numbers Disappeared in an Array
查看>>
css-position
查看>>
iOS应用签名(上)
查看>>
有趣的border-radius
查看>>
Ubuntu远程Windows
查看>>
Zilliqa生态构建资助计划第三批获奖名单
查看>>
javaSE基础知识 1.1代码注释
查看>>
分享一些 Broadcast 使用技巧
查看>>
Flutter audioplayers使用小结
查看>>
iOS 状态栏的图标
查看>>
如何利用Redis实现延时处理
查看>>
我的python之路01(持续更新中........)
查看>>
应届生想要获取web前端开发岗位?这份技能攻略,面试攻略别错过!
查看>>
如何为Apache Kylin快速开发新数据源?
查看>>
简单解读高阶函数和纯函数
查看>>
深入剖析Vue源码 - 数据代理,关联子父组件
查看>>
阿里VS华为-开源镜像站体验及评测
查看>>
101 Symmetric Tree
查看>>
GIT命令速查
查看>>
ThinkPHP控制器学习(二)
查看>>