in reply to String matching idea
#!/usr/bin/perl # http://perlmonks.org/?node_id=1142400 use strict; use warnings; # two strings my $s1 = 'aaababbbababbbabababb'; my $s2 = 'aaababbbabaaababbabba'; ($s1 ^ $s2) =~ /\0*/; print $+[0], "\n"; # many strings (assumes no \n in strings) my @many = qw( aaababbbababbbabababb aaababbbabaaababbabba aaababababaaababbabba aaababbbabaaaaabbabba ); join("\n", @many, '') =~ /^(.*).*\n(?:\1.*\n)*$/; print length $1, "\n"; # also solves original problem :) @many = qw( aaababbbababbbabababb aaababbbabaaababbabba ); join("\n", @many, '') =~ /^(.*).*\n(?:\1.*\n)*$/; print length $1, "\n";
As far as "fastest way", see Benchmark.pm :)
|
|---|