/**
* @param {number} n
* @return {string[]}
*/
var isValid = function(srcStr){
let help = [];
for(let i = 0;i<srcStr.length;i++){
if(srcStr[i]=='('){
help.push('(');
}else{
if(help.length){
help.pop();
}else{
return false;
}
}
}
if(help.length){
return false;
}else{
return true;
}
}
var getAll = function(curStr,res,n){
if(curStr.length >= n*2){
// console.log(curStr);
if(isValid(curStr)){
res.push(curStr);
}
}else{
let addLeftStr = curStr+'(';
getAll(addLeftStr,res,n);
let addRigthStr = curStr+')'
getAll(addRigthStr,res,n);
}
}
var generateParenthesis = function(n) {
let res = [];
getAll('',res,n);
return res;
};