小编Jak*_*e D的帖子

查找字谜数量的算法?

所以我知道找到字谜背后的理论,显示在这里。出于我的目的,我需要找到可以从一个单词中找到的 anagrams 的数量排除重复

允许重复,这相当简单。 aab有以下字谜:

aab
aab
aba
aba
baa
baa
Run Code Online (Sandbox Code Playgroud)

这个数量可以通过计算字母数量的阶乘来找到

factorial := 1

for i := len(word); i > 0; i-- {
    factorial = i * factorial
}

// aab -> 6
Run Code Online (Sandbox Code Playgroud)

但是,如果您想排除重复项,您已将潜在的字谜从 6 个减少到 3 个。一个例子是单词hello,它有 120 个组合,但只有 60 个没有重复项。

我编写了自己的算法来制作字母映射并返回映射的长度,但这也有问题。

hello -> 24 (actually 60)
helllo -> 24 (actually 120)
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

algorithm duplicates factorial go anagram

4
推荐指数
1
解决办法
94
查看次数

标签 统计

algorithm ×1

anagram ×1

duplicates ×1

factorial ×1

go ×1