代码拉取完成,页面将自动刷新
package main
import (
"fmt"
)
func permutation(s string) (res []string) {
trace , book, n := "" , make(map[int]int), len(s)
set := make(map[string]int)
var depth func()
depth = func() {
if _ , ok := set[trace] ;len(trace) == n && !ok {
res = append(res, trace)
set[trace] ++
return
}
for i := 0 ; i < n ; i++ {
if v , _ := book[i] ; v > 0 {
continue
}
book[i] ++
trace += string(s[i])
depth()
book[i] --
trace = trace[:len(trace)-1]
}
}
depth()
return res
}
func main() {
fmt.Println(permutation("aab"))
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。