aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-08-18 19:29:14 +0100
committerGitHub <noreply@github.com>2024-08-18 19:29:14 +0100
commit162e844af722b86929553c800974627d401fa13d (patch)
treef1359b6ae421434ab2a07597ef227c36623ef4ee
parent2d40bc36496f52bf421e5c2aed87a7af8cf3b744 (diff)
parent7c1173d7c6a6edd9f666dab8fae97d1deee3b65e (diff)
downloadperlweeklychallenge-club-162e844af722b86929553c800974627d401fa13d.tar.gz
perlweeklychallenge-club-162e844af722b86929553c800974627d401fa13d.tar.bz2
perlweeklychallenge-club-162e844af722b86929553c800974627d401fa13d.zip
Merge pull request #10640 from E7-87-83/newh
Week 282
-rw-r--r--challenge-282/cheok-yin-fung/perl/ch-1.pl15
-rw-r--r--challenge-282/cheok-yin-fung/perl/ch-2.pl19
2 files changed, 34 insertions, 0 deletions
diff --git a/challenge-282/cheok-yin-fung/perl/ch-1.pl b/challenge-282/cheok-yin-fung/perl/ch-1.pl
new file mode 100644
index 0000000000..29083e409e
--- /dev/null
+++ b/challenge-282/cheok-yin-fung/perl/ch-1.pl
@@ -0,0 +1,15 @@
+# The Weekly Challenge 282
+# Task 1 Good Integer
+use v5.30.0;
+use warnings;
+
+sub gi {
+ my $int = $_[0];
+ return -1 if $int =~ /(\d)\1\1\1/;
+ return $1 x 3 if $int =~ /(\d)\1\1/;
+}
+
+use Test::More tests=>3;
+ok gi("12344456") eq "444";
+ok gi("1233334") eq -1;
+ok gi("1020003") eq "000";
diff --git a/challenge-282/cheok-yin-fung/perl/ch-2.pl b/challenge-282/cheok-yin-fung/perl/ch-2.pl
new file mode 100644
index 0000000000..ed2afa15b3
--- /dev/null
+++ b/challenge-282/cheok-yin-fung/perl/ch-2.pl
@@ -0,0 +1,19 @@
+# The Weekly Challenge 282
+# Task 2 Changing Keys
+use v5.30.0;
+use warnings;
+use List::Util qw/reduce/;
+
+sub ck {
+ my $str = $_[0];
+ return 0 if $str eq "";
+ $str = lc $str;
+ my @alphabets = split "", $str;
+ my $abc = reduce { substr($a,-1) eq $b ? $a : $a.$b } @alphabets;
+ return ((length $abc) - 1);
+}
+
+use Test::More tests=>3;
+ok ck("pPeERrLl") == 3;
+ok ck("rRr") == 0;
+ok ck("GoO") == 1;