diff options
| author | BarrOff <58253563+BarrOff@users.noreply.github.com> | 2025-09-29 01:09:38 +0200 |
|---|---|---|
| committer | BarrOff <58253563+BarrOff@users.noreply.github.com> | 2025-09-29 01:09:38 +0200 |
| commit | 802089d873dc4dcdaffc67f6eb5a09d383169a87 (patch) | |
| tree | 74afac63be3f6361d30a5224cabe72e82be6b8e1 | |
| parent | cae84ec4547cc7c2e3e5044e3a448ef0668a0a8c (diff) | |
| download | perlweeklychallenge-club-802089d873dc4dcdaffc67f6eb5a09d383169a87.tar.gz perlweeklychallenge-club-802089d873dc4dcdaffc67f6eb5a09d383169a87.tar.bz2 perlweeklychallenge-club-802089d873dc4dcdaffc67f6eb5a09d383169a87.zip | |
feat: add solution for challenge 340 from BarrOff
| -rw-r--r-- | challenge-340/barroff/raku/ch-1.p6 | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/challenge-340/barroff/raku/ch-1.p6 b/challenge-340/barroff/raku/ch-1.p6 new file mode 100644 index 0000000000..1ee6646cd6 --- /dev/null +++ b/challenge-340/barroff/raku/ch-1.p6 @@ -0,0 +1,28 @@ +#!/usr/bin/env raku + +use v6.d; + +sub duplicate-removal(Str $str --> Str) { + my Str $s = $str; + while $s ~~ m/ (<:Ll>) {} :my $c=$0; $c / { + $s ~~ s/ (<:Ll>) {} :my $c=$0; "$c" //; + }; + return $s; +} + +#| Run test cases +multi sub MAIN('test') { + use Test; + plan 5; + + is duplicate-removal("abbaca"), "ca", 'works for "abbaca"'; + is duplicate-removal("azxxzy"), "ay", 'works for "azxxzy"'; + is duplicate-removal("aaaaaaaa"), "", 'works for "aaaaaaaa"'; + is duplicate-removal("aabccba"), "a", 'works for "aabccba"'; + is duplicate-removal("abcddcba"), "", 'works for "abcddcba"'; +} + +#| Take user provided string like "abbaca" +multi sub MAIN(Str $str) { + say duplicate-removal($str); +} |
