找到两个字符串中的匹配字符串

时间:2014-01-21 13:15:23

标签: string perl substring

我想得到一个perl脚本的提示,它找到两个字符串中存在的最长公共子字符串。每个字符串最长为500个字符。

例如

abcsffwqfwqsdfasdfTHISISANAPPLEfasdfasdfsdfsadfasdfsdaf4353.54.4fdfsdgg
detertqteqtTHISISANAPPLEafsedfgwetwqrgtwrgtwetpqw4t5osdavm\wert4384..53

输出应为THISISANAPPLE

听起来很简单,但可能并不简单。

有人有想法吗?

1 个答案:

答案 0 :(得分:4)

检查String::LCSS_XS

use String::LCSS_XS 'lcss';

my ($s1,$s2) = (
  "abcsffwqfwqsdfasdfTHISISANAPPLEfasdfasdfsdfsadfasdfsdaf4353.54.4fdfsdgg",
  "detertqteqtTHISISANAPPLEafsedfgwetwqrgtwrgtwetpqw4t5osdavm\wert4384..53"
);
my $longest = lcss ($s1, $s2);
print "$longest\n";

输出

THISISANAPPLE