从字典中查找字谜最有效的算法是什么?

时间:2018-03-25 13:35:29

标签: algorithm perl

我想创建一个哈希:键首先遇到不同的单词,该值是对带有此键的字符的anon数组的引用。

我编写了以下代码,当单词数量在范围内(0到几千)时可以使用,但我想让它更快。

下面是检查字符串是否为字谜的方法。我迭代所有单词和哈希的所有键。

join("", sort(split (//, fc($word)))) eq join("", sort(split (//, fc($key)))))

1 个答案:

答案 0 :(得分:1)

O(N).

my %grouped;
while (<>) {
   chomp;
   my $key = sort split //, fc($_);
   push @{ $grouped{$key} }, $_;
}

my @anagrams = grep { @$_ >= 2 } values(%grouped);