aboutsummaryrefslogtreecommitdiff
path: root/challenge-115
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-06-06 13:40:56 +0100
committerGitHub <noreply@github.com>2021-06-06 13:40:56 +0100
commit22371534e4e913cf9643acef24a009a7f08e6e35 (patch)
treef8ab060e059c3c68870a20b14fcd39558b2d8720 /challenge-115
parentbca8f2f3f0a1dcbffdcedde92ec782dc11b937c2 (diff)
parentce2a306f1127ca23cba0c5553b32f11118dda096 (diff)
downloadperlweeklychallenge-club-22371534e4e913cf9643acef24a009a7f08e6e35.tar.gz
perlweeklychallenge-club-22371534e4e913cf9643acef24a009a7f08e6e35.tar.bz2
perlweeklychallenge-club-22371534e4e913cf9643acef24a009a7f08e6e35.zip
Merge pull request #4202 from wambash/challenge-week-115
solutions week 115
Diffstat (limited to 'challenge-115')
-rw-r--r--challenge-115/wambash/raku/ch-1.raku30
-rw-r--r--challenge-115/wambash/raku/ch-2.raku25
2 files changed, 55 insertions, 0 deletions
diff --git a/challenge-115/wambash/raku/ch-1.raku b/challenge-115/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..0a0e1e3687
--- /dev/null
+++ b/challenge-115/wambash/raku/ch-1.raku
@@ -0,0 +1,30 @@
+#!/usr/bin/env raku
+
+
+sub string-chain-iter (@a,@s) {
+ @a
+ andthen .map: { |$_ X, (@s.Bag ∖ $_).keys.grep: -> $x { $x.starts-with: .tail.comb.tail} }\
+ andthen .map: *.Slip
+}
+
+sub string-chain (+@s) {
+ my &iter = &string-chain-iter.assuming(*,@s);
+ [@s.head], *.&iter ... *
+ andthen .[@s.end]
+ andthen .first: { .cache; .head.starts-with: .tail.comb.tail }
+}
+
+
+multi MAIN (*@s) {
+ say +so string-chain @s
+}
+
+multi MAIN (:test($)!) {
+ use Test;
+ is-deeply string-chain-iter(('abc',), ('dea','cd','cec')).any, ('abc','cd') & ('abc','cec');
+ is-deeply string-chain-iter(('abd','dea',), ('dea','abd')), (('abd','dea'), ('dea','abd'));
+ is string-chain('abc', 'dea','cd','cec'),('abc','cec','cd','dea');
+ is string-chain('abc', 'dea','cd',), ('abc','cd','dea');
+ is string-chain('ade', 'fgh','cbd',), Nil;
+ done-testing;
+}
diff --git a/challenge-115/wambash/raku/ch-2.raku b/challenge-115/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..a2100bfcae
--- /dev/null
+++ b/challenge-115/wambash/raku/ch-2.raku
@@ -0,0 +1,25 @@
+#!/usr/bin/env raku
+
+
+sub largest-multiple (+@n) {
+ with @n.grep(* %% 2).min -> $min-even {
+ @n.Bag ∖ $min-even
+ andthen .kxxv.sort.reverse
+ andthen .join ~ $min-even
+ }
+}
+
+
+multi MAIN (:test($)!) {
+ use Test;
+ is largest-multiple(1,0,2,6), 6210;
+ is largest-multiple(1,4,2,8), 8412;
+ is largest-multiple(1,4,7,6), 7614;
+ is largest-multiple(1,4,7,4), 7414;
+ is largest-multiple(1,3,7,9), '9731Inf';
+ done-testing;
+}
+
+multi MAIN (*@n) {
+ say largest-multiple @n;
+}