aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-07-29 11:31:19 +0100
committerGitHub <noreply@github.com>2024-07-29 11:31:19 +0100
commit36f0484f523111d2488193b26b019730fb3cbfd9 (patch)
treed4ea5930a5dd22ed208e30cf42395a09b8de869a
parentd913a7d5714b5f9cbb9692647197e7a6f514044a (diff)
parent78709d96cb58bfda9e2047eee60c081e1565b0cf (diff)
downloadperlweeklychallenge-club-36f0484f523111d2488193b26b019730fb3cbfd9.tar.gz
perlweeklychallenge-club-36f0484f523111d2488193b26b019730fb3cbfd9.tar.bz2
perlweeklychallenge-club-36f0484f523111d2488193b26b019730fb3cbfd9.zip
Merge pull request #10508 from seaker/master
challenge 280, raku solutions
-rwxr-xr-xchallenge-280/feng-chang/raku/ch-1.raku5
-rwxr-xr-xchallenge-280/feng-chang/raku/ch-2.raku5
-rwxr-xr-xchallenge-280/feng-chang/raku/test.raku24
3 files changed, 34 insertions, 0 deletions
diff --git a/challenge-280/feng-chang/raku/ch-1.raku b/challenge-280/feng-chang/raku/ch-1.raku
new file mode 100755
index 0000000000..42ee2ea734
--- /dev/null
+++ b/challenge-280/feng-chang/raku/ch-1.raku
@@ -0,0 +1,5 @@
+#!/bin/env raku
+
+unit sub MAIN(Str:D $s);
+
+put $s.match(/(.).*$0/, :ex).sort(*.pos)[0].comb[0];
diff --git a/challenge-280/feng-chang/raku/ch-2.raku b/challenge-280/feng-chang/raku/ch-2.raku
new file mode 100755
index 0000000000..a6474b8fc1
--- /dev/null
+++ b/challenge-280/feng-chang/raku/ch-2.raku
@@ -0,0 +1,5 @@
+#!/bin/env raku
+
+unit sub MAIN(Str:D $s);
+
+put +$s.split('|')[0,2...*].join.comb.grep('*');
diff --git a/challenge-280/feng-chang/raku/test.raku b/challenge-280/feng-chang/raku/test.raku
new file mode 100755
index 0000000000..77cc56b8c7
--- /dev/null
+++ b/challenge-280/feng-chang/raku/test.raku
@@ -0,0 +1,24 @@
+#!/bin/env raku
+
+# The Weekly Challenge 280
+use Test;
+
+sub pwc-test(Str:D $script, Bool :$deeply? = False, *@input) {
+ my ($expect, $assertion) = @input.splice(*-2, 2);
+ my $p = run $script, |@input, :out;
+ if $deeply {
+ is-deeply $p.out.slurp(:close).chomp.words.Bag, $expect, $assertion;
+ } else {
+ is $p.out.slurp(:close).chomp, $expect, $assertion;
+ }
+}
+
+# Task 1, Twice Appearance
+pwc-test './ch-1.raku', 'acbddbca', 'd', 'Twice Appearance: acbddbca => d';
+pwc-test './ch-1.raku', 'abccd', 'c', 'Twice Appearance: abccd => c';
+pwc-test './ch-1.raku', 'abcdabbb', 'a', 'Twice Appearance: abcdabbb => a';
+
+# Task 2, Count Asterisks
+pwc-test './ch-2.raku', 'p|*e*rl|w**e|*ekly|', 2, 'Count Asterisks: "p|*e*rl|w**e|*ekly|" => 2';
+pwc-test './ch-2.raku', 'perl', 0, 'Count Asterisks: "perl" => 0';
+pwc-test './ch-2.raku', 'th|ewe|e**|k|l***ych|alleng|e', 5, 'Count Asterisks: "th|ewe|e**|k|l***ych|alleng|e" => 5';