aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-265/asherbhs/raku/ch-1.raku10
-rw-r--r--challenge-265/asherbhs/raku/ch-2.raku10
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';