diff options
| author | Mark Anderson <mark@frontrangerunner.com> | 2020-08-17 02:56:08 -0600 |
|---|---|---|
| committer | Mark Anderson <mark@frontrangerunner.com> | 2020-08-17 02:56:08 -0600 |
| commit | c97bde3ea44f3fd9a4ece6f2f8739ed9853401d0 (patch) | |
| tree | e5e9180a262ba712eb2c444352aeb7a2985b4c6e /challenge-074/mark-anderson | |
| parent | 26b6db21e84648652c374d46c5a9c7de5e862e17 (diff) | |
| download | perlweeklychallenge-club-c97bde3ea44f3fd9a4ece6f2f8739ed9853401d0.tar.gz perlweeklychallenge-club-c97bde3ea44f3fd9a4ece6f2f8739ed9853401d0.tar.bz2 perlweeklychallenge-club-c97bde3ea44f3fd9a4ece6f2f8739ed9853401d0.zip | |
Challenge 74 Solutions
Diffstat (limited to 'challenge-074/mark-anderson')
| -rw-r--r-- | challenge-074/mark-anderson/raku/ch-2.raku | 25 |
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; |
