我想创建一个哈希:键首先遇到不同的单词,该值是对带有此键的字符的anon数组的引用。
我编写了以下代码,当单词数量在范围内(0到几千)时可以使用,但我想让它更快。
下面是检查字符串是否为字谜的方法。我迭代所有单词和哈希的所有键。
join("", sort(split (//, fc($word)))) eq join("", sort(split (//, fc($key)))))
答案 0 :(得分:1)
O(N).
my %grouped;
while (<>) {
chomp;
my $key = sort split //, fc($_);
push @{ $grouped{$key} }, $_;
}
my @anagrams = grep { @$_ >= 2 } values(%grouped);