您的位置:首页 > 其它

LeetCode Generate Parentheses

2014-10-15 22:43 323 查看
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 {
String parenthes = "()";
List<String> lastParenthesis=new ArrayList<>();
public List<String> generateParenthesis(int n) {
List<String> Parenthesis=new ArrayList<>();
if (n==0) {
return lastParenthesis;
}
lastParenthesis.add(parenthes);
if (n==1) {
return lastParenthesis;
}else {
for (int i = 2; i <=n; i++) {
for (String eleP : lastParenthesis) {
for (int j = 0; j < eleP.length(); j++) {
String newone=eleP.substring(0, j+1)+parenthes+eleP.substring(j+1);
if (!Parenthesis.contains(newone)) {
Parenthesis.add(newone);
}
}

}
lastParenthesis.clear();
lastParenthesis.addAll(Parenthesis);
Parenthesis.clear();
}
}
return lastParenthesis;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: