u
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
package top100liked
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
// https://leetcode.cn/problems/generate-parentheses/description/?envType=study-plan-v2&envId=top-100-liked
|
||||
|
||||
func generateParenthesis(n int) []string {
|
||||
res := []string{}
|
||||
r := []byte{}
|
||||
num_l := 0
|
||||
num_r := 0
|
||||
|
||||
var helper func()
|
||||
helper = func() {
|
||||
if num_l < n {
|
||||
r = append(r, '(')
|
||||
num_l++
|
||||
helper()
|
||||
num_l--
|
||||
r = r[:len(r)-1]
|
||||
}
|
||||
if num_l > num_r {
|
||||
r = append(r, ')')
|
||||
num_r++
|
||||
helper()
|
||||
num_r--
|
||||
r = r[:len(r)-1]
|
||||
}
|
||||
if num_l == n && num_r == n {
|
||||
res = append(res, string(r))
|
||||
}
|
||||
}
|
||||
|
||||
helper()
|
||||
|
||||
return res
|
||||
}
|
||||
|
||||
func Test(t *testing.T) {
|
||||
fmt.Printf("%+v\n", generateParenthesis(3))
|
||||
}
|
||||
|
||||
func Test2(t *testing.T) {
|
||||
fmt.Printf("%+v\n", generateParenthesis(1))
|
||||
}
|
||||
Reference in New Issue
Block a user