[nb] Commit

This commit is contained in:
2021-08-08 10:53:32 -05:00
parent a8716f9734
commit f9c2c88398
3 changed files with 78 additions and 43 deletions

View File

@@ -1,4 +1,8 @@
package main
import (
"strings"
"container/list"
)
/*
Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.
Example 1:
@@ -20,37 +24,30 @@ Constraints:
1 <= n <= 8
*/
func rec(int index, dp map[string]string) {
func rec(input []string, left int, right int, n int, ans *[]string) {
if len(input) == 2*n {
*ans = append(*ans, strings.Join(input, ""))
return
}
if left < n {
input = append(input, "(")
rec(input, left+1, right, n, ans)
input = input[0:len(input)-1]
}
if right < left {
input = append(input, ")")
rec(input, left, right+1, n, ans)
input = input[0:len(input)-1]
}
}
func generateParenthesis(n int)[] string {
if n == 1 {
return []string{"()"}
}
if n == 2 {
return []string{"()()", "(())"}
}
var output = make([]string, 0)
var dp = map[string]string{}
var start_string string = ""
for i := 0; i < n - 1; i++ {
start_string = start_string + "()"
out_arr = a
}
output = append(output, start_string)
for i := 1; i < n - 1; i++ {
result := rec(i+1, dp) + rec(i-1)
}
func generateParenthesis(n int) []string {
var output = make([]string, 2*n)
var input = make([]string, 2*n)
rec(input, 0, 0, n, &output)
return output
}
func main() {
generateParenthesis(3)
}