aboutsummaryrefslogtreecommitdiff
path: root/challenge-111/feng-chang
diff options
context:
space:
mode:
author冯昶 <fengchang@novel-supertv.com>2021-05-03 20:47:16 +0800
committer冯昶 <fengchang@novel-supertv.com>2021-05-03 20:47:16 +0800
commitb8a0f3583b84bf0f36e8789ac05523b472de9c73 (patch)
tree4a3e79e0ea53880f002c262d55c83ef8607da610 /challenge-111/feng-chang
parent81252bda7fb7bcc9e9e153a6b3d268ab8c1a38c8 (diff)
downloadperlweeklychallenge-club-b8a0f3583b84bf0f36e8789ac05523b472de9c73.tar.gz
perlweeklychallenge-club-b8a0f3583b84bf0f36e8789ac05523b472de9c73.tar.bz2
perlweeklychallenge-club-b8a0f3583b84bf0f36e8789ac05523b472de9c73.zip
challenge 111, raku solutions
Diffstat (limited to 'challenge-111/feng-chang')
-rwxr-xr-xchallenge-111/feng-chang/raku/ch-1.raku19
-rw-r--r--challenge-111/feng-chang/raku/ch-1.txt5
-rwxr-xr-xchallenge-111/feng-chang/raku/ch-2.raku7
3 files changed, 31 insertions, 0 deletions
diff --git a/challenge-111/feng-chang/raku/ch-1.raku b/challenge-111/feng-chang/raku/ch-1.raku
new file mode 100755
index 0000000000..0355d1e80c
--- /dev/null
+++ b/challenge-111/feng-chang/raku/ch-1.raku
@@ -0,0 +1,19 @@
+#!/bin/env raku
+
+sub binary-search(@a, Int:D $start, Int:D $end, Int:D $n) {
+ my $middle = ($start + $end) div 2;
+ do given @a[$middle] {
+ when $_ == $n { 1 }
+ when $start == $end { 0 }
+ when $_ > $n { binary-search(@a, $start, $middle - 1, $n) }
+ default { binary-search(@a, $middle + 1, $end, $n) }
+ }
+}
+
+sub MAIN(
+ Int:D $n,
+ Str:D $f where *.IO.f = 'ch-1.txt'
+) {
+ my @a = $f.IO.words;
+ put binary-search(@a, 0, @a.elems - 1, $n);
+}
diff --git a/challenge-111/feng-chang/raku/ch-1.txt b/challenge-111/feng-chang/raku/ch-1.txt
new file mode 100644
index 0000000000..1daf55c92c
--- /dev/null
+++ b/challenge-111/feng-chang/raku/ch-1.txt
@@ -0,0 +1,5 @@
+ 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
diff --git a/challenge-111/feng-chang/raku/ch-2.raku b/challenge-111/feng-chang/raku/ch-2.raku
new file mode 100755
index 0000000000..a5d8d40c7d
--- /dev/null
+++ b/challenge-111/feng-chang/raku/ch-2.raku
@@ -0,0 +1,7 @@
+#!/bin/env raku
+
+sub MAIN(Str:D $words where *.IO.e = '/usr/share/dict/words') {
+ my @w = $words.IO.words.grep({ [le] $_.lc.comb });
+ my $max-length = @w».chars.max;
+ @w.grep(*.chars == $max-length).put;
+}