aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Proctor <simon.proctor@zoopla.co.uk>2020-08-18 09:33:57 +0100
committerSimon Proctor <simon.proctor@zoopla.co.uk>2020-08-18 09:33:57 +0100
commit083dff7c33ac815a5ee0b37ed60796e1cd63d82d (patch)
treec90ba955d5519a01e105e376c2ef0313d057344b
parentcff2a058684122fdb3c68858dc6b46bcceaa1d06 (diff)
downloadperlweeklychallenge-club-083dff7c33ac815a5ee0b37ed60796e1cd63d82d.tar.gz
perlweeklychallenge-club-083dff7c33ac815a5ee0b37ed60796e1cd63d82d.tar.bz2
perlweeklychallenge-club-083dff7c33ac815a5ee0b37ed60796e1cd63d82d.zip
So... still don't get why it's FNR but this matches the spec
-rw-r--r--challenge-074/simon-proctor/raku/ch-2.raku29
1 files changed, 29 insertions, 0 deletions
diff --git a/challenge-074/simon-proctor/raku/ch-2.raku b/challenge-074/simon-proctor/raku/ch-2.raku
new file mode 100644
index 0000000000..8d9d133b5f
--- /dev/null
+++ b/challenge-074/simon-proctor/raku/ch-2.raku
@@ -0,0 +1,29 @@
+#!/usr/bin/env raku
+
+use v6;
+
+#| Given a string print the FNR character for each sub string
+#| Prints # if there isn't one at a given point
+sub MAIN ( Str $input ) {
+ my @codes = $input.comb;
+ my @in;
+ my @out;
+
+ for @codes -> $c {
+ @in.push($c);
+ @out.push(fnr(@in));
+ }
+
+ say @out.join("");
+}
+
+sub fnr ( @values ) {
+ my $counts = bag(@values);
+
+ for @values.reverse -> $v {
+ return $v if $counts{$v} ~~ 1;
+ }
+
+ return '#';
+}
+