aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-05-18 23:24:56 +0100
committerGitHub <noreply@github.com>2025-05-18 23:24:56 +0100
commit6246cbddd06b5eddfd51c824a59175abb3cd6a7c (patch)
treebe86b3ce84c4a75914dece4a19e4654cb8a7de78
parent07168b318d6ba57749192c91021e76f82ff174f4 (diff)
parent7d2808aa476dbc2ed441298070908d8cb904794c (diff)
downloadperlweeklychallenge-club-6246cbddd06b5eddfd51c824a59175abb3cd6a7c.tar.gz
perlweeklychallenge-club-6246cbddd06b5eddfd51c824a59175abb3cd6a7c.tar.bz2
perlweeklychallenge-club-6246cbddd06b5eddfd51c824a59175abb3cd6a7c.zip
Merge pull request #12041 from BarrOff/barroff-321
feat: add solutions for challenge 321 from BarrOff
-rw-r--r--challenge-321/barroff/raku/ch-1.p628
-rw-r--r--challenge-321/barroff/raku/ch-2.p622
2 files changed, 50 insertions, 0 deletions
diff --git a/challenge-321/barroff/raku/ch-1.p6 b/challenge-321/barroff/raku/ch-1.p6
new file mode 100644
index 0000000000..bc5e9c7dc4
--- /dev/null
+++ b/challenge-321/barroff/raku/ch-1.p6
@@ -0,0 +1,28 @@
+#!/usr/bin/env raku
+
+use v6.d;
+
+sub distinct-average(@nums where @nums.elems mod 2 == 0 --> Int) {
+ my @sorted-nums = @nums.sort;
+ Set(
+ map(
+ { @sorted-nums[$_] + @sorted-nums[* - 1 - $_] },
+ 0..@nums.elems รท 2 - 1
+ )
+ ).elems;
+}
+
+#| Run test cases
+multi sub MAIN('test') {
+ use Test;
+ plan 3;
+
+ is distinct-average([1, 2, 4, 3, 5, 6]), 1, 'works for "[1, 2, 4, 3, 5, 6]"';
+ is distinct-average([0, 2, 4, 8, 3, 5]), 2, 'works for "[0, 2, 4, 8, 3, 5]"';
+ is distinct-average([7, 3, 1, 0, 5, 9]), 2, 'works for "[7, 3, 1, 0, 5, 9]"';
+}
+
+#| Take user provided numbers like 3, 30, 34, 5, 9
+multi sub MAIN(*@ints) {
+ say distinct-average(@ints);
+}
diff --git a/challenge-321/barroff/raku/ch-2.p6 b/challenge-321/barroff/raku/ch-2.p6
new file mode 100644
index 0000000000..7297f4ffcd
--- /dev/null
+++ b/challenge-321/barroff/raku/ch-2.p6
@@ -0,0 +1,22 @@
+#!/usr/bin/env raku
+
+use v6.d;
+
+sub backspace-compare(Str $str1, Str $str2 --> Bool) {
+ $str1.trans('#' => '') eq $str2.trans('#' => '');
+}
+
+#| Run test cases
+multi sub MAIN('test') {
+ use Test;
+ plan 3;
+
+ is backspace-compare("ab#c", "ab#c"), True, 'works for "ab#c"';
+ is backspace-compare("ab##", "a#b#"), True, 'works for "ab##" and "a#b#';
+ is backspace-compare("a#b", "c"), False, 'works for "a#b" and "c"';
+}
+
+#| Take user provided strings like 'ab#c' 'ab#c'
+multi sub MAIN(Str $str1, Str $str2) {
+ say backspace-compare($str1, $str2);
+}