aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuben Westerberg <drclaw@mac.com>2019-07-24 08:14:26 +1000
committerRuben Westerberg <drclaw@mac.com>2019-07-24 08:14:26 +1000
commitb2f6e57f6abddcee29c9354b390903cdd633e6fe (patch)
tree0be109aad8a2c79690bcf89449b764ac4ca44432
parentf3ec8b835f3df68f266229f8f950489f2134aa2c (diff)
downloadperlweeklychallenge-club-b2f6e57f6abddcee29c9354b390903cdd633e6fe.tar.gz
perlweeklychallenge-club-b2f6e57f6abddcee29c9354b390903cdd633e6fe.tar.bz2
perlweeklychallenge-club-b2f6e57f6abddcee29c9354b390903cdd633e6fe.zip
Added ch-1 p6 solution
-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";
+