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