From 33dcd8be189e911df40a39fa97f481f02c06bd84 Mon Sep 17 00:00:00 2001 From: CY Fung Date: Sun, 28 Jan 2024 20:47:04 +0800 Subject: Week 253 --- challenge-253/cheok-yin-fung/perl/ch-1.pl | 18 ++++++++++++++++++ challenge-253/cheok-yin-fung/perl/ch-2.pl | 31 +++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 challenge-253/cheok-yin-fung/perl/ch-1.pl create mode 100644 challenge-253/cheok-yin-fung/perl/ch-2.pl diff --git a/challenge-253/cheok-yin-fung/perl/ch-1.pl b/challenge-253/cheok-yin-fung/perl/ch-1.pl new file mode 100644 index 0000000000..6f3bd5ec43 --- /dev/null +++ b/challenge-253/cheok-yin-fung/perl/ch-1.pl @@ -0,0 +1,18 @@ +# The Weekly Challenge 253 +# Task 1 Split Strings +use v5.30.0; +use warnings; + +sub ss { + my @arr = $_[0]->@*; + my $sep = $_[1]; + my $Sep = $sep; + $Sep =~ s/(\W)/\\$1/g; + my @new = grep {$_} split /$Sep/, join $sep, @arr; + return [@new]; +} + +use Test2::V0; +is ss(["one.two.three","four.five","six"], "."), ["one", "two", "three", "four","five", "six"]; +is ss(['$perl$$', '$$raku$'], '$'), ["perl", "raku"]; +done_testing(); diff --git a/challenge-253/cheok-yin-fung/perl/ch-2.pl b/challenge-253/cheok-yin-fung/perl/ch-2.pl new file mode 100644 index 0000000000..b3afab1541 --- /dev/null +++ b/challenge-253/cheok-yin-fung/perl/ch-2.pl @@ -0,0 +1,31 @@ +# The Weekly Challenge 253 +# Task 2 Weakest Row +use v5.30.0; +use warnings; + +sub wr { + my $matrix = $_[0]; + my @rows = $matrix->@*; + my @weight = map {scalar grep {$_} $_->@*} @rows; + my @ord = sort {$weight[$a] <=> $weight[$b] || $a<=>$b} 0..$#rows; + return [@ord]; +} + +use Test2::V0; +is wr([ + [1, 1, 0, 0, 0], + [1, 1, 1, 1, 0], + [1, 0, 0, 0, 0], + [1, 1, 0, 0, 0], + [1, 1, 1, 1, 1] + ] +), [2,0,3,1,4]; + +is wr([ + [1, 0, 0, 0], + [1, 1, 1, 1], + [1, 0, 0, 0], + [1, 0, 0, 0] + ] +), [0,2,3,1]; +done_testing(); -- cgit