提问:用golang写一个组合算法函数zuhe(x,n),x为组合所需的字符,n 为组合后的字符串长度,例如 x="ab", n=2 结果返回 aa,ab,bb,ba
结果:下面是一个用Go编写的生成长度为n的字符串组合的函数 zuhe
,其中 x
是组合的字符,n
是组合后的字符串长度,它将返回所有长度为 n
的字符串组合:
package mainimport ("fmt""strings"
)func zuhe(x string, n int) []string {var combinations []stringvar generateCombination func(currentCombination string, remainingLength int)generateCombination = func(currentCombination string, remainingLength int) {if remainingLength == 0 {combinations = append(combinations, currentCombination)return}for _, char := range x {generateCombination(currentCombination+string(char), remainingLength-1)}}generateCombination("", n)return combinations
}func main() {x := "ab"n := 2result := zuhe(x, n)fmt.Println("组合结果:", strings.Join(result, ","))
}
网上的许多组合代码都不如人意,突发奇想用chatGPT尝试,试了几次,得出了意想不到的结果,后续继续上gpt-go 码