123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- package main
- import (
- "fmt"
- )
- func main() {
- fmt.Println("hello" + "(")
- fmt.Println(generateParenthesis(3))
- }
- func generateParenthesis(n int) []string {
- result := []string{}
- left := 0
- right := 0
- strNow := ""
- var gobackfunc func(n int, left int, right int, strNow string)
- gobackfunc = func(n int, left int, right int, strNow string) {
- if right > left {
- return
- }
- if left == right && left == n {
- result = append(result, strNow)
- return
- }
- if left < n {
- gobackfunc(n, left+1, right, strNow+"(")
- }
- if left > right {
- gobackfunc(n, left, right+1, strNow+")")
- }
- }
- gobackfunc(n, left, right, strNow)
- return result
- }
|