aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Anderson <mark@frontrangerunner.com>2020-08-17 09:05:51 -0600
committerMark Anderson <mark@frontrangerunner.com>2020-08-17 09:05:51 -0600
commit6b7ad5180a7dbcd24b47c08c2be7c3ec51989556 (patch)
tree6784c28b69496dc0bd61279699b3197abc8a371c
parent04630eaa204fd0950cdac071e8dac700cf536614 (diff)
downloadperlweeklychallenge-club-6b7ad5180a7dbcd24b47c08c2be7c3ec51989556.tar.gz
perlweeklychallenge-club-6b7ad5180a7dbcd24b47c08c2be7c3ec51989556.tar.bz2
perlweeklychallenge-club-6b7ad5180a7dbcd24b47c08c2be7c3ec51989556.zip
ch-2.raku
-rw-r--r--challenge-074/mark-anderson/raku/ch-2.raku16
1 files changed, 7 insertions, 9 deletions
diff --git a/challenge-074/mark-anderson/raku/ch-2.raku b/challenge-074/mark-anderson/raku/ch-2.raku
index c572e643c3..8e8f0a9b99 100644
--- a/challenge-074/mark-anderson/raku/ch-2.raku
+++ b/challenge-074/mark-anderson/raku/ch-2.raku
@@ -1,31 +1,29 @@
sub MAIN($string) {
my @fnr-chars = gather {
for 1..$string.chars -> $i {
- take fnr($string.substr(0, $i));
+ take fnr($string.substr($i-1, 1));
}
}
say @fnr-chars.join;
}
-sub fnr($string) {
+sub fnr($letter) {
state %seen;
- state $singles;
-
- my $letter = $string.substr($string.chars-1, 1);
+ state $fnr-chars;
%seen{$letter}++;
given %seen{$letter} {
when 1 {
- $singles ~= $letter;
+ $fnr-chars ~= $letter;
return $letter;
}
when 2 {
- my $idx = $singles.index($letter);
- $singles = $singles.substr(0, $idx) ~ $singles.substr($idx+1);
+ my $idx = $fnr-chars.index($letter);
+ $fnr-chars = $fnr-chars.substr(0, $idx) ~ $fnr-chars.substr($idx+1);
}
}
- return $singles.substr($singles.chars-1, 1) // "#";
+ return $fnr-chars.substr($fnr-chars.chars-1, 1) // "#";
}