Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,33 @@
|
|||
#!/usr/bin/perl
|
||||
use strict ;
|
||||
use warnings ;
|
||||
|
||||
sub longestCommonSubstr {
|
||||
my $first = shift ;
|
||||
my $second = shift ;
|
||||
my %firstsubs = findSubstrings ( $first );
|
||||
my %secondsubs = findSubstrings ( $second ) ;
|
||||
my @commonsubs ;
|
||||
foreach my $subst ( keys %firstsubs ) {
|
||||
if ( exists $secondsubs{ $subst } ) {
|
||||
push ( @commonsubs , $subst ) ;
|
||||
}
|
||||
}
|
||||
my @sorted = sort { length $b <=> length $a } @commonsubs ;
|
||||
return $sorted[0] ;
|
||||
}
|
||||
|
||||
sub findSubstrings {
|
||||
my $string = shift ;
|
||||
my %substrings ;
|
||||
my $l = length $string ;
|
||||
for ( my $start = 0 ; $start < $l ; $start++ ) {
|
||||
for ( my $howmany = 1 ; $howmany < $l - $start + 1 ; $howmany++) {
|
||||
$substrings{substr( $string , $start , $howmany) } = 1 ;
|
||||
}
|
||||
}
|
||||
return %substrings ;
|
||||
}
|
||||
|
||||
my $longest = longestCommonSubstr( "thisisatest" ,"testing123testing" ) ;
|
||||
print "The longest common substring of <thisisatest> and <testing123testing> is $longest !\n" ;
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
use strict; # https://rosettacode.org/wiki/Longest_Common_Substring
|
||||
use warnings;
|
||||
|
||||
my $one = 'thisisatest';
|
||||
my $two = 'testing123testing';
|
||||
|
||||
my @best;
|
||||
"$one\n$two" =~ /(.+).*\n.*\1(?{ $best[length $1]{$1}++})(*FAIL)/;
|
||||
print "$_\n" for sort keys %{ $best[-1] };
|
||||
Loading…
Add table
Add a link
Reference in a new issue