From e34c195322e37debb1cd3d45bec6197dfaaf5c66 Mon Sep 17 00:00:00 2001 From: Mark <53903062+andemark@users.noreply.github.com> Date: Mon, 12 Feb 2024 08:45:25 +0000 Subject: Challenge 256 Solutions (Raku) --- challenge-256/mark-anderson/raku/ch-1.raku | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/challenge-256/mark-anderson/raku/ch-1.raku b/challenge-256/mark-anderson/raku/ch-1.raku index 11e69decd1..63d957d319 100644 --- a/challenge-256/mark-anderson/raku/ch-1.raku +++ b/challenge-256/mark-anderson/raku/ch-1.raku @@ -1,17 +1,19 @@ #!/usr/bin/env raku -use Adverb::Eject; use Test; is max-pairs(), 1; is max-pairs(), 0; is max-pairs(), 2; +# Credit to Niels van Dijke (PerlBoy1967) for this algorithm. + sub max-pairs(*@words) { - + do while @words + my $bh = BagHash.new; + + + do gather for @words { - my $w = @words.pop; - my $k = @words.first(* eq $w.flip, :k); - @words[$k]:eject with $k + .take if $bh{$_}; + $bh.add(.flip) } } -- cgit