aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-018/ruben-westerberg/perl6/ch-1.p624
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";
+