我有一个大约 5000 个单词的列表。我想找到给定单词的这些单词中最长的前缀匹配。例如,在我的列表中,我有:
1
121
12234
20345
21345
现在,如果我搜索 12134,结果将是 121(最长匹配)。我知道可以通过不同的方式来完成。但是,最有效的方法是什么?
最佳答案
#!/usr/bin/env perl
use strict;
use warnings;
my @prefixes = qw(
1
121
12234
20345
21345
);
my $num = '12134';
my ($longest) = sort { length $b <=> length $a } grep { 0 == index $num, $_ } @prefixes;
print "$longest\n";
输出
121
关于Perl:进行最长前缀匹配的最佳方法(字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31778486/