Generate Parentheses(22)
Generate Parentheses
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:
"((()))", "(()())", "(())()", "()(())", "()()()"
思路:向string 中插入( 和 ),每插入一个就减1。 那么如何保证这个combination 是正确的呢?
-
插入数量不超过n
-
可以插入 ) 的前提是 ( 的数量大于 )
所以就得到了递归的两个条件。
public class Solution {
public List generateParenthesis(int n) {
List result = new ArrayList();
String paren = "";
helper(result,paren, n, n);
return result;
}
private void helper(List result, String paren,int left, int right) {
if (left == 0 && right == 0) {
result.add(paren);
return;
}
if (left > 0) {
helper(result, paren + "(", left - 1, right);
}
if (right > 0 && left < right) {
helper(result, paren + ")", left, right - 1);
}
}
}
关键字:产品经理
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!