请问如何将一个中文字符串的所有排列组合情况打印出来?

feeso4 · · 1199 次点击
不知道这个是不是你想要的 ``` package main import "fmt" func backtracking(s []rune, i int, seq string, res *[]string) { if i == len(s) { *res = append(*res, seq) return } for j := 0; j < len(s); j++ { backtracking(s, i+1, seq+string(s[j]), res) } } func main() { s := "高中低" data := []rune(s) res := []string{} backtracking(data, 0, "", &res) fmt.Println(res) } ```
#2
更多评论
```go func permutation(S string) []string { nameRune := []rune(S) if len(nameRune) == 1 { return []string{S} } // 与拼接得到的各个字符串再进行拼接 ret := []string{} for i, s := range nameRune { // 差了第i个字符的剩余字符串往下传,并将得到的结果进行合并 tmp := string(nameRune[:i]) + string(nameRune[i+1:]) res := permutation(tmp) for _, r := range res { ret = append(ret, fmt.Sprintf("%c%s", s, r)) } } return ret } ```
#1