LeetCode : Generate Parentheses [java]
2016-03-07 20:49
411 查看
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:
思路:使用递归方法,
规则是:
a. '('没加完,就可以加'(',
b. ')'加入需要满足两点:1.')'没加完;
2. 剩余'('数小于剩余')'数,加上')'才能保证可能匹配
For example, given n = 3, a solution set is:
"((()))", "(()())", "(())()", "()(())", "()()()"
思路:使用递归方法,
规则是:
a. '('没加完,就可以加'(',
b. ')'加入需要满足两点:1.')'没加完;
2. 剩余'('数小于剩余')'数,加上')'才能保证可能匹配
import java.util.ArrayList; import java.util.List; public class Solution { public List<String> generateParenthesis(int n) { List<String> result = new ArrayList<>(); String s = ""; int left = n; int right = n; generate(left, right, s, result); return result; } private void generate(int left, int right, String s, List<String> result) { if (left == 0 && right == 0) { result.add(s); } if (left > 0) { generate(left - 1, right, s + "(", result); } if (right > 0 && left < right) { generate(left, right - 1, s + ")", result); } } }
相关文章推荐
- thinking in java 04
- 【转载】【软件】Eclipse自动补全功能轻松设置 || 不需要修改编辑任何文件
- Java数组中常见有点难度的练习题
- SpringMVC配置
- Spring常见问题
- Java 征途:行者的地图
- Java 征途:行者的地图
- Java 征途:行者的地图
- Java - ★知识点
- javadoc文档
- Java 枚举类整理
- Java 征途:行者的地图
- 25个经典的Spring面试问答
- java 知识点梳理
- HDU 1715 大数java
- 《Java实战开发经典》第六章6.2
- Java工具
- Java中final、finally、finalize的区别
- Java设计模式学习笔记(单例模式)
- Spring Security权限管理框架