aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-05-09 21:06:39 +0100
committerGitHub <noreply@github.com>2021-05-09 21:06:39 +0100
commitea3026e37bc8e40410212aa35c541eff8c548879 (patch)
treeb1f31ce7d50339ee1150506026a2c84b2cc27036
parent34e7cf285e5c9a95dd87d49ba9213f074f8d6c81 (diff)
parente74a5c9e937c3b766ce42d5ae8ed73d730c16ed7 (diff)
downloadperlweeklychallenge-club-ea3026e37bc8e40410212aa35c541eff8c548879.tar.gz
perlweeklychallenge-club-ea3026e37bc8e40410212aa35c541eff8c548879.tar.bz2
perlweeklychallenge-club-ea3026e37bc8e40410212aa35c541eff8c548879.zip
Merge pull request #4042 from arnesom/branch-for-challenge-111
Arne Sommer
-rw-r--r--challenge-111/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-111/arne-sommer/raku/ch-1.raku7
-rwxr-xr-xchallenge-111/arne-sommer/raku/ch-2.raku20
-rwxr-xr-xchallenge-111/arne-sommer/raku/ordered-letters20
-rwxr-xr-xchallenge-111/arne-sommer/raku/search-matrix11
-rwxr-xr-xchallenge-111/arne-sommer/raku/search-matrix27
6 files changed, 66 insertions, 0 deletions
diff --git a/challenge-111/arne-sommer/blog.txt b/challenge-111/arne-sommer/blog.txt
new file mode 100644
index 0000000000..c555c2e24a
--- /dev/null
+++ b/challenge-111/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/ordered-search.html
diff --git a/challenge-111/arne-sommer/raku/ch-1.raku b/challenge-111/arne-sommer/raku/ch-1.raku
new file mode 100755
index 0000000000..c579270884
--- /dev/null
+++ b/challenge-111/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,7 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (Int $input, Str $matrix = "1 2 3 5 7 | 9 11 15 19 20 | 23 24 25 29 31 | 32 33 39 40 42 | 45 47 48 49 50");
+
+my @m = $matrix.split("|")>>.words>>.List;
+
+say + (so any(@m.List.flat) == $input);
diff --git a/challenge-111/arne-sommer/raku/ch-2.raku b/challenge-111/arne-sommer/raku/ch-2.raku
new file mode 100755
index 0000000000..3a0103009d
--- /dev/null
+++ b/challenge-111/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,20 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (:d(:$dictionary) where $dictionary.IO.r = "/usr/share/dict/british-english", :a($all));
+
+my @dict = $dictionary.IO.lines.grep(* !~~ /\W/).map( *.lc ).sort({ $^b.chars <=> $^a.chars });
+
+my $found = 0;
+
+for @dict -> $word
+{
+ last if !$all && $word.chars < $found;
+
+ my $sorted = $word.comb.sort.join;
+
+ if $word eq $sorted
+ {
+ say $word;
+ $found = $word.chars;
+ }
+}
diff --git a/challenge-111/arne-sommer/raku/ordered-letters b/challenge-111/arne-sommer/raku/ordered-letters
new file mode 100755
index 0000000000..3a0103009d
--- /dev/null
+++ b/challenge-111/arne-sommer/raku/ordered-letters
@@ -0,0 +1,20 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (:d(:$dictionary) where $dictionary.IO.r = "/usr/share/dict/british-english", :a($all));
+
+my @dict = $dictionary.IO.lines.grep(* !~~ /\W/).map( *.lc ).sort({ $^b.chars <=> $^a.chars });
+
+my $found = 0;
+
+for @dict -> $word
+{
+ last if !$all && $word.chars < $found;
+
+ my $sorted = $word.comb.sort.join;
+
+ if $word eq $sorted
+ {
+ say $word;
+ $found = $word.chars;
+ }
+}
diff --git a/challenge-111/arne-sommer/raku/search-matrix b/challenge-111/arne-sommer/raku/search-matrix
new file mode 100755
index 0000000000..0e0e2df117
--- /dev/null
+++ b/challenge-111/arne-sommer/raku/search-matrix
@@ -0,0 +1,11 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (Int $input );
+
+my @m = [[ 1, 2, 3, 5, 7 ],
+ [ 9, 11, 15, 19, 20 ],
+ [ 23, 24, 25, 29, 31 ],
+ [ 32, 33, 39, 40, 42 ],
+ [ 45, 47, 48, 49, 50 ]];
+
+say + so any(@m>>.List.flat) == $input;
diff --git a/challenge-111/arne-sommer/raku/search-matrix2 b/challenge-111/arne-sommer/raku/search-matrix2
new file mode 100755
index 0000000000..c579270884
--- /dev/null
+++ b/challenge-111/arne-sommer/raku/search-matrix2
@@ -0,0 +1,7 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (Int $input, Str $matrix = "1 2 3 5 7 | 9 11 15 19 20 | 23 24 25 29 31 | 32 33 39 40 42 | 45 47 48 49 50");
+
+my @m = $matrix.split("|")>>.words>>.List;
+
+say + (so any(@m.List.flat) == $input);