博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Generate parentheses,生成括号对,递归,深度优先搜索。
阅读量:4571 次
发布时间:2019-06-08

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

问题描述:给n对括号,生成所有合理的括号对。比如n=2,(()),()()

算法思路:利用深度优先搜索的递归思想,对n进行深度优先搜索。边界条件是n==0;前面电话号组成字符串也是利用dfs。

public List
generateParenthesis(int n) { List
result = new ArrayList<>(); dfs(result,"",n,n); return result; } public void dfs(List
result, String s, int left, int right)//n个左括号,n个右括号 { if(left > right)//右括号比左括号多,无法生成。直接返回。截枝。 { return; } if(left == 0 && right == 0)//递归的边界条件。 { result.add(s); } if(left > 0) { dfs(result, s+"(", left-1, right); } if(right > 0) { dfs(result, s+")", left, right-1); } }

 

转载于:https://www.cnblogs.com/masterlibin/p/5543487.html

你可能感兴趣的文章
浅析 JavaScript 链式调用
查看>>
分布式版本控制系统Git的安装与使用
查看>>
Python字符串反转操作
查看>>
js将时间戳转为时间格式
查看>>
lucene中FSDirectory、RAMDirectory的用法
查看>>
单向链表的实现
查看>>
普通用户也能运行WCF服务端
查看>>
创建一个存储过程,接受1个部门编号,利用传出参数返回月薪高于该部门平均月薪的人数。...
查看>>
the ruby resources
查看>>
一个稍微整理过的curl函数
查看>>
解决Flex4 amchart 日期出现两个月的问题
查看>>
java环境配置错误集锦
查看>>
【SICP练习】81 练习2.53
查看>>
poj3335 Rotating Scoreboard
查看>>
yum安装jdk如何配置JAVA_HOME
查看>>
nefu 三国之战
查看>>
creat-react-app搭建的项目中按需引入antd以及配置Less和如何修改antd的主题色
查看>>
IIS安装
查看>>
c#核心基础-委托
查看>>
VS2008试用版到期解决办法
查看>>