Perl:进行最长前缀匹配的最佳方法(字符串)

标签 perl longest-prefix

我有一个大约 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/

相关文章:

MySQL LEAST() 具有任意数量的参数;表中最长的匹配

python - URL 的最长前缀匹配

ruby - 数组的最长公共(public)前缀和后缀

linux - 没有可用于基本错误的 Presto 元数据下载包 :

perl - 如何找到csv记录的差异

perl - 信号干扰管道通信的方式有哪些?

c++ - KMP算法和LPS表构建的运行时间

regex - 这个 perl 正则表达式匹配什么?

perl - 嵌套while循环以计算多个目的地的距离

ruby - 字符串数组中的所有公共(public)子序列