From ddc0de5056fd4516e471c350d054b5c46e113202 Mon Sep 17 00:00:00 2001 From: E7-87-83 Date: Sun, 18 Aug 2024 23:23:05 +0800 Subject: Week 282 --- challenge-282/cheok-yin-fung/perl/ch-1.pl | 15 +++++++++++++++ challenge-282/cheok-yin-fung/perl/ch-2.pl | 18 ++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 challenge-282/cheok-yin-fung/perl/ch-1.pl create mode 100644 challenge-282/cheok-yin-fung/perl/ch-2.pl 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..276e97afb5 --- /dev/null +++ b/challenge-282/cheok-yin-fung/perl/ch-2.pl @@ -0,0 +1,18 @@ +# The Weekly Challenge 282 +# Task 2 Changing Keys +use v5.30.0; +use warnings; +use List::Util qw/reduce/; + +sub ck { + my $str = $_[0]; + $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; -- cgit