class Solution {
public List<String> generateParenthesis(int n) {
}
}
解决:
1.什么时候能添加左括号?
只要左括号的数目小于给出的n就能继续添加左括号
2.什么时候能添加右括号?
只要右括号的数目还小于左括号的数目就能继续添加左括号
3.什么时候放结果?
只要当左括号数目和右括号数目加起来为2n即可
4.结果放在list中即可
使用回溯法解决
public List<String> generateParenthesis(int n){
List<String> result = new ArrayList<String>();
backTrace(result,"",0,0,n);
return result;
}
/**
*
* 什么时候不能再继续添加左边的括号? 当左边的括号数目到达n的时候
* 什么时候可以添加右边的括号? 当右边的括号数目小于左边括号数目即可
* 什么时候不能再添加任何的了? 当长度已经到达最长的时候
* @param result
* @par