A: abbaba
B: babbaaaa
A: abbaba
B: --babbaaaa
####
#!/usr/bin/perl
use strict;
srand(4);
for (1..10){
&find_a_sufpref_match($_,&generate_random_string(4),&generate_random_string(4),1);
}
sub find_a_sufpref_match {
my ($id,$a,$b,$msm) = @_;
my @a = split("",$a);
my @b = split("",$b);
my ($start,$length, $m) = (0,0,0);
for (my $i = @a; $i>=0; $i--){
my ($x,$mx,$tl,$j) = ($i,0,0,0);
while( $j <= @a-$i){
$mx++ if $a[$x] ne $b[$j];
$tl++;
if ($mx > $msm){
if ($j < @a-$i){
$tl = 0;
}
$mx--;
last;
}
$x++;
$j++;
}
($start,$length,$m) = ($i,$tl-1,$mx) if ($tl -1 > $length)
}
print "$id:($m)($start,$length)($a,$b)\n";
}
sub generate_random_string{
my $length=shift;# the length of the random string to generate
my @chars= qw(a b);
my $random_string;
foreach (1..$length){
$random_string.=$chars[rand @chars];
}
return $random_string;
}
##
##
1:(1)(0,4)(bbab,bbbb)
2:(1)(0,4)(aaaa,aaba)
3:(1)(1,3)(baaa,abaa)
4:(1)(2,2)(aabb,bbab)
5:(1)(0,4)(abab,abaa)
6:(1)(0,4)(aabb,babb)
7:(1)(3,1)(aaaa,bbaa)
8:(1)(3,1)(baaa,bbba)
9:(1)(0,4)(aaab,baab)
10:(0)(0,4)(aaaa,aaaa)