JSFiddle - React, Tailwind, and code Playground
by sperske
JavaScript
function allBalancedStrings(n, parens = ['(', ')']) {
if (n === 0) return new Set([''])
const result = new Set()
for (let i = 0; i < n; i++) {
for (const s1 of allBalancedStrings(i, parens)) {
for (const s2 of allBalancedStrings(n - i - 1, parens)) {
result.add(`${parens[0]}${s1}${parens[1]}${s2}`)
}
}
}
return result
}
for (let i = 1; i < 16; i++) {
const start = Date.now()
const data = [...allBalancedStrings(i)]
const end = Date.now()
console.log(`n=${i} calualted in ${end-start}ms`)
}