go组合
2024-09-26 07:47:30
package main
import "fmt"
func main() {
aa := []string{"a", "b", "c", "d"}
fmt.Println(permutation(aa))
}
func permutation(sarr []string) (rets []string) {
if len(sarr) == 1 {
rets = sarr
return rets
}
for i := 0; i < len(sarr); i++ {
// append(sarr[:i], sarr[i+1:]...)直接append会改变sarr
sonsarr := permutation(append(append([]string{}, sarr[:i]...), sarr[i+1:]...))
for _, sons := range sonsarr {
rets = append(rets, sarr[i]+sons)
}
}
return rets
}
最新文章
- 11.Configure Many-to-Many(配置多对多关系)【Code-First系列】
- 油田 Oil Deposits
- centos7下更改java环境
- ASP.NET WebAPI 10 Action的选择(二)
- C安全编码--预处理
- JDK 环境变量的配置
- Win10无法上网提示缺少一个或者多个网络协议的处理方法
- 视频转换工具 Transmageddon
- 逻辑回归损失函数(cost function)
- [转载] 关于Windows Boot Manager、Bootmgfw.efi、Bootx64.efi、bcdboot.exe 的详解
- SpringMVC 国际化-中英文切换
- Scheme 中的 pair 和 list 简述
- Iozone
- PHP时间戳和日期互转换
- 【js课设】电子画板01
- 【Mac使用系列】常用软件及快捷键
- python fabric实现远程操作和部署示例
- C# windows服务:C#windows服务中的Timer控件的使用
- 输出字符串中最长的单词 C# 算法
- SpringBoot —— AOP注解式拦截与方法规则拦截