Skip to content

Instantly share code, notes, and snippets.

@marsgpl
Created March 19, 2019 18:47
Show Gist options
  • Save marsgpl/d74ad2737cbcfd14f5166f923b70e141 to your computer and use it in GitHub Desktop.
Save marsgpl/d74ad2737cbcfd14f5166f923b70e141 to your computer and use it in GitHub Desktop.
const genBrackets = function(n) {
const result = []
if ( n > 0 ) {
genBrackets.add(n, 0, "", result)
}
return result.join(" ")
}
genBrackets.add = function(left, right, buffer, result) {
if ( !left && !right ) {
result.push(buffer)
}
if ( left > 0 ) {
genBrackets.add(left-1, right+1, buffer+"(", result)
}
if ( right > 0 ) {
genBrackets.add(left, right-1, buffer+")", result)
}
}
console.log(genBrackets(0)) //
console.log(genBrackets(1)) // ()
console.log(genBrackets(2)) // (()) ()()
console.log(genBrackets(3)) // ((())) (()()) (())() ()(()) ()()()
console.log(genBrackets(4)) // (((()))) ((()())) ((())()) ((()))() (()(())) (()()()) (()())() (())(()) (())()() ()((())) ()(()()) ()(())() ()()(()) ()()()()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment