您的位置:首页 > 其它

22. Generate Parentheses

2016-01-06 22:02 218 查看
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 class Solution {
public List<String> generateParenthesis(int n) {
if(n <= 0)  return null;
ArrayList<String> list = new ArrayList<String>();
String str = new String();
dfs(list,str,n,n);
return list;
}

private void  dfs(ArrayList<String> list, String str, int left, int right){
if(left > right)    return;//problem with ")("
if(left == 0 && right == 0){
list.add(str);
}
if(left > 0)    dfs(list,str+"(",left-1,right);
if(right > 0)   dfs(list, str+")",left,right-1);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: