image.png

key

使用递归来解

解题方案

image.png

code

  1. public List<String> generateParenthesis(int n) {
  2. List<String> res = new ArrayList<>();
  3. singleStr(res,"",0,0,n);
  4. return res;
  5. }
  6. //left表示左括号的数量
  7. private void singleStr (List<String> result, String str,int left, int right, int n){
  8. if(left==n&&right==n) //如果都有n个 加入
  9. result.add(str);
  10. if(left<n) //如果左括号少
  11. singleStr(result,str+"(",left+1,right,n);
  12. if(right<left) //如果右括号比左括号少
  13. singleStr(result,str+")",left,right+1,n);
  14. }