aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-08-17 10:04:53 +0100
committerGitHub <noreply@github.com>2020-08-17 10:04:53 +0100
commitacab8434debdf560c67fa23826c2b5c5f6e46441 (patch)
treed410040d107c15605c18cb0671ec671c62f16625
parentb220e85fa6216f3a384c7ee1a29d9d827f6a7fdc (diff)
parentc97bde3ea44f3fd9a4ece6f2f8739ed9853401d0 (diff)
downloadperlweeklychallenge-club-acab8434debdf560c67fa23826c2b5c5f6e46441.tar.gz
perlweeklychallenge-club-acab8434debdf560c67fa23826c2b5c5f6e46441.tar.bz2
perlweeklychallenge-club-acab8434debdf560c67fa23826c2b5c5f6e46441.zip
Merge pull request #2090 from andemark/branch-for-challenge-074
Challenge 74 Solutions
-rw-r--r--challenge-074/mark-anderson/raku/ch-2.raku25
1 files changed, 25 insertions, 0 deletions
diff --git a/challenge-074/mark-anderson/raku/ch-2.raku b/challenge-074/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..2447d5f9a5
--- /dev/null
+++ b/challenge-074/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,25 @@
+unit sub MAIN($string);
+
+my %seen;
+my $singles;
+
+my @first-non-repeatings = gather {
+ for 1..$string.chars -> $i {
+ my $letter = $string.substr($i-1, 1);
+
+ %seen{$letter}++;
+
+ if %seen{$letter} == 1 {
+ $singles ~= $letter;
+ take $letter;
+ }
+
+ else {
+ my $idx = $singles.index($letter);
+ $singles = $singles.substr(0, $idx) ~ $singles.substr($idx+1);
+ take $singles.substr($singles.chars-1, 1) // "#";
+ }
+ }
+}
+
+say @first-non-repeatings.join;