aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBarrOff <58253563+BarrOff@users.noreply.github.com>2025-09-29 01:09:38 +0200
committerBarrOff <58253563+BarrOff@users.noreply.github.com>2025-09-29 01:09:38 +0200
commit802089d873dc4dcdaffc67f6eb5a09d383169a87 (patch)
tree74afac63be3f6361d30a5224cabe72e82be6b8e1
parentcae84ec4547cc7c2e3e5044e3a448ef0668a0a8c (diff)
downloadperlweeklychallenge-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.p628
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);
+}