热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[LeetCode]22.GenerateParentheses

Givennpairsofparentheses,writeafunctiontogenerateallcombinationsofwell-formedparentheses.F

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:

["((()))","(()())","(())()","()(())","()()()"
]

用二叉树形象的表示这种关系。然后再把二叉树转化为代码的形式。因为二叉树的定义就是递归定义的,因此本题很明显应该使用递归的形式。

这里写图片描述

就如同遍历查找一棵二叉树一样,只不过这个是一个个往上加。

public List<String> generateParenthesis(int n) {List<String> res &#61; new ArrayList<String>();if (n &#61;&#61; 0)return res;dfs(res, "", n, n);return res;}private void dfs(List<String> res, String tem, int left, int right) {if (0 &#61;&#61; left && 0 &#61;&#61; right) {res.add(tem);return;} else if (left > 0)dfs(res, tem &#43; &#39;(&#39;, left - 1, right);if (left <right)dfs(res, tem &#43; &#39;)&#39;, left, right - 1);}

这种递归到最后自然就都加上去了。




推荐阅读
author-avatar
雨蝶馨菲_484
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有