diff options
| -rw-r--r-- | challenge-265/asherbhs/raku/ch-1.raku | 10 | ||||
| -rw-r--r-- | challenge-265/asherbhs/raku/ch-2.raku | 10 |
2 files changed, 20 insertions, 0 deletions
diff --git a/challenge-265/asherbhs/raku/ch-1.raku b/challenge-265/asherbhs/raku/ch-1.raku new file mode 100644 index 0000000000..a81cddabca --- /dev/null +++ b/challenge-265/asherbhs/raku/ch-1.raku @@ -0,0 +1,10 @@ +sub appearance(Int:D @ints --> Int) { + my $len = 0.33 × @ints; + my @keys = @ints.Bag.grep(*.value ≥ $len)».key; + @keys ?? min @keys !! Int +} + +say appearance Array[Int:D].new: 1, 2, 3, 3, 3, 3, 4, 2; +say appearance Array[Int:D].new: 1, 1; +say appearance Array[Int:D].new: 1, 2, 3; +say appearance Array[Int:D].new: 1, 2, 3, 4; diff --git a/challenge-265/asherbhs/raku/ch-2.raku b/challenge-265/asherbhs/raku/ch-2.raku new file mode 100644 index 0000000000..cca5dd9640 --- /dev/null +++ b/challenge-265/asherbhs/raku/ch-2.raku @@ -0,0 +1,10 @@ +sub completing-word(Str:D $str, Str:D @str --> Str:D) { + my $str-bag = $str.lc.comb.grep(/<[a..z]>/).Bag; + my @completing = @str.grep($str-bag ⊆ *.comb.Bag); + @completing ?? @completing.min(*.chars) !! '' +} + +say completing-word 'aBc 11c', Array[Str:D].new: 'accbbb', 'abc', 'abbc'; +say completing-word 'Da2 abc', Array[Str:D].new: 'abcm', 'baacd', 'abaadc'; +say completing-word 'JB 007', Array[Str:D].new: 'jj', 'bb', 'bjb'; +say completing-word 'aBcDeFg', Array[Str:D].new: 'abc', 'bcd', 'cde'; |
