lc-go/solutions/0/q22/solution.go
2026-01-07 18:04:39 +09:00

27 lines
494 B
Go

package q22
func gen(n, lvl, used int, buf []byte, ret []string) []string {
if buf == nil {
buf = make([]byte, 0, n*2)
}
if len(buf) == n*2 {
return append(ret, string(buf))
}
if used < n {
buf = append(buf, '(')
ret = gen(n, lvl+1, used+1, buf, ret)
buf = buf[:len(buf)-1]
}
if lvl > 0 {
buf = append(buf, ')')
ret = gen(n, lvl-1, used, buf, ret)
}
return ret
}
func generateParenthesis(n int) []string {
return gen(n, 0, 0, nil, nil)
}
var _ = generateParenthesis