diff options
| -rwxr-xr-x | challenge-018/ruben-westerberg/perl6/ch-1.p6 | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/challenge-018/ruben-westerberg/perl6/ch-1.p6 b/challenge-018/ruben-westerberg/perl6/ch-1.p6 new file mode 100755 index 0000000000..41eb24b0e9 --- /dev/null +++ b/challenge-018/ruben-westerberg/perl6/ch-1.p6 @@ -0,0 +1,24 @@ +#!/usr/bin/env perl6 + + +my $s1=@*ARGS[0]//"dfasabcdef"; +my $s2=@*ARGS[1]//"dfabcd"; +my @a2=$s2.comb; +my $len2=@a2.elems; +my @a1=("_" x @a2-1 ~$s1~ "_" x @a2-1).comb; +@a2=@a2.append: "_" xx @a1 - @a2; +my $longest=""; +my ($maxShift,$maxCount)=(0,0); + +for ^(@a1-($len2+1)) { + my @tmp= ((@a1 >>eq<< @a2.rotate(-$_)) >>&&<< (@a1 >>ne>> "_"))>>.Num; + my $sum=sum @tmp; + if $sum > $maxCount { + $maxCount=$sum; + my @d=(m:g/(1+)/ given join "", @tmp)>>.&{@a1[.from.. .to-1].join: ""}; + $longest=@d.max; + } +} + +put "Longest common substring: $longest"; + |
