字符串排列组合实现
go 实现
package main
import (
"fmt"
)
func swap(start, end int, S []string) {
S[start], S[end] = S[end], S[start]
}
func permutation(S []string, start, end int) {
if start == end {
fmt.Println(S)
} else {
for i := start; i < end; i++ {
swap(start, i, S) // 交换
permutation(S, start+1, end) //子集合
swap(i, start, S) //回朔
}
}
}
func main() {
permutation([]string{"1", "2", "3"}, 0, 3)
}