diff options
| -rw-r--r-- | challenge-074/wambash/raku/ch-1.raku | 14 | ||||
| -rw-r--r-- | challenge-074/wambash/raku/ch-2.raku | 17 |
2 files changed, 31 insertions, 0 deletions
diff --git a/challenge-074/wambash/raku/ch-1.raku b/challenge-074/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..4b4a1ec2a2 --- /dev/null +++ b/challenge-074/wambash/raku/ch-1.raku @@ -0,0 +1,14 @@ +use v6; + +sub majority-element (+@a) { + @a.Bag + andthen \(total => .total, max-element => .max: *.value) + andthen .<total> - .<max-element>.value < .<max-element>.value ?? .<max-element>.key !! -1 +} + +sub MAIN (:$test) { + use Test; + is majority-element(1, 2, 2, 3, 2, 4, 2), 2; + is majority-element(1, 3, 1, 2, 4, 5), -1; + done-testing(); +} diff --git a/challenge-074/wambash/raku/ch-2.raku b/challenge-074/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..55fc320f00 --- /dev/null +++ b/challenge-074/wambash/raku/ch-2.raku @@ -0,0 +1,17 @@ +use v6; + +sub infix:<FNR> (+@a) is assoc<list> { + @a.first: * ∉ @a.repeated, :end orelse '#' +} + +sub FNR-charakter ( $s ) { + [~] [\FNR] $s.comb +} + +sub MAIN ( :$test ) { + use Test; + is 'a' FNR 'b' FNR 'c' FNR 'a', 'c'; + is FNR-charakter('ababc'), ‘abb#c’; + is FNR-charakter('xyzzyx'), ‘xyzyx#’; + done-testing(); +} |
