diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-05-18 23:24:56 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-18 23:24:56 +0100 |
| commit | 6246cbddd06b5eddfd51c824a59175abb3cd6a7c (patch) | |
| tree | be86b3ce84c4a75914dece4a19e4654cb8a7de78 | |
| parent | 07168b318d6ba57749192c91021e76f82ff174f4 (diff) | |
| parent | 7d2808aa476dbc2ed441298070908d8cb904794c (diff) | |
| download | perlweeklychallenge-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.p6 | 28 | ||||
| -rw-r--r-- | challenge-321/barroff/raku/ch-2.p6 | 22 |
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); +} |
