aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorE7-87-83 <fungcheokyin@gmail.com>2024-06-16 17:51:57 +0800
committerE7-87-83 <fungcheokyin@gmail.com>2024-06-16 17:51:57 +0800
commit22b6b07c3a99ccee0a10870b3a22d7b14c1c3f21 (patch)
tree92ec989e7952216e685458f3352306ed72b39e1d
parent781d55b4aec8d8a24189a52805739d81072cd740 (diff)
downloadperlweeklychallenge-club-22b6b07c3a99ccee0a10870b3a22d7b14c1c3f21.tar.gz
perlweeklychallenge-club-22b6b07c3a99ccee0a10870b3a22d7b14c1c3f21.tar.bz2
perlweeklychallenge-club-22b6b07c3a99ccee0a10870b3a22d7b14c1c3f21.zip
Week 273
-rw-r--r--challenge-273/cheok-yin-fung/perl/ch-1.pl20
-rw-r--r--challenge-273/cheok-yin-fung/perl/ch-2.pl20
2 files changed, 40 insertions, 0 deletions
diff --git a/challenge-273/cheok-yin-fung/perl/ch-1.pl b/challenge-273/cheok-yin-fung/perl/ch-1.pl
new file mode 100644
index 0000000000..6e76a2eecf
--- /dev/null
+++ b/challenge-273/cheok-yin-fung/perl/ch-1.pl
@@ -0,0 +1,20 @@
+# The Weekly Challenge 273
+# Task 1 Percentage of Character
+use v5.30.0;
+use warnings;
+use Math::Round qw/round/;
+
+sub sc {
+ my $str = $_[0];
+ my $char = $_[1];
+ my $per = (grep {$_ eq $char} split "", $str) / length $str;
+ return round(100*$per);
+}
+
+use Test::More tests=>6;
+ok sc("perl", "e") == 25;
+ok sc("java", "a") == 50;
+ok sc("python", "m") == 0;
+ok sc("ada", "a") == 67;
+ok sc("ballerina", "l") == 22;
+ok sc("analitik", "k") == 13;
diff --git a/challenge-273/cheok-yin-fung/perl/ch-2.pl b/challenge-273/cheok-yin-fung/perl/ch-2.pl
new file mode 100644
index 0000000000..8bb8f81ef9
--- /dev/null
+++ b/challenge-273/cheok-yin-fung/perl/ch-2.pl
@@ -0,0 +1,20 @@
+# The Weekly Challenge 273
+# Task 2 B After A
+use v5.30.0;
+use warnings;
+
+sub ab {
+ my $str = $_[0];
+ my $ind = index($str, "b");
+ my $ans = $ind >= 0 ? 1 : 0;
+ my $ind_a = index($str, "a", $ind);
+ $ans = $ans && ($ind_a >= 0 ? 0 : 1);
+ return $ans;
+}
+
+use Test::More tests=>5;
+ok ab("aabb");
+ok !ab("abab");
+ok !ab("aaa");
+ok ab("bbb");
+ok !ab("ccc");