aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2023-12-18 13:08:47 +0000
committerGitHub <noreply@github.com>2023-12-18 13:08:47 +0000
commitefdf320321f734def5899556d23c4b85c3a28ec0 (patch)
tree75a776211e3be4c2a9eaadcf2a3de1b1fc552fac
parent6b464fb34439fe2d4a8b5bd7595ad0bbf5d1e22c (diff)
parentdc1854fdace1827f16f2d3dde1e403de2003ef38 (diff)
downloadperlweeklychallenge-club-efdf320321f734def5899556d23c4b85c3a28ec0.tar.gz
perlweeklychallenge-club-efdf320321f734def5899556d23c4b85c3a28ec0.tar.bz2
perlweeklychallenge-club-efdf320321f734def5899556d23c4b85c3a28ec0.zip
Merge pull request #9256 from wlmb/challenges
Solve PWC248
-rw-r--r--challenge-248/wlmb/blog.txt1
-rwxr-xr-xchallenge-248/wlmb/perl/ch-1.pl15
-rwxr-xr-xchallenge-248/wlmb/perl/ch-2.pl16
3 files changed, 32 insertions, 0 deletions
diff --git a/challenge-248/wlmb/blog.txt b/challenge-248/wlmb/blog.txt
new file mode 100644
index 0000000000..2638288046
--- /dev/null
+++ b/challenge-248/wlmb/blog.txt
@@ -0,0 +1 @@
+https://wlmb.github.io/2023/12/17/PWC248/
diff --git a/challenge-248/wlmb/perl/ch-1.pl b/challenge-248/wlmb/perl/ch-1.pl
new file mode 100755
index 0000000000..14c9ab3c0e
--- /dev/null
+++ b/challenge-248/wlmb/perl/ch-1.pl
@@ -0,0 +1,15 @@
+#!/usr/bin/env perl
+# Perl weekly challenge 248
+# Task 1: Shortest Distance
+#
+# See https://wlmb.github.io/2023/12/17/PWC248/#task-1-shortest-distance
+use v5.36;
+use PDL;
+die <<~"FIN" unless @ARGV==2;
+ Usage: $0 string letter
+ to obtain the shortest distances.
+ FIN
+my @letters=split "", $ARGV[0];
+my $i=pdl(grep {$letters[$_] eq $ARGV[1]} 0..@letters-1);
+my $j=sequence(0+@letters);
+say "@ARGV; $ARGV[1] -> ", ($i->dummy(1)-$j->dummy(0))->abs->minover;
diff --git a/challenge-248/wlmb/perl/ch-2.pl b/challenge-248/wlmb/perl/ch-2.pl
new file mode 100755
index 0000000000..7d9022d2fd
--- /dev/null
+++ b/challenge-248/wlmb/perl/ch-2.pl
@@ -0,0 +1,16 @@
+#!/usr/bin/env perl
+# Perl weekly challenge 248
+# Task 2: Submatrix Sum
+#
+# See https://wlmb.github.io/2023/12/17/PWC248/#task-2-submatrix-sum
+use v5.36;
+use PDL;
+use PDL::NiceSlice;
+die <<~"FIN" unless @ARGV==1;
+ Usage: $0 M
+ to sum 2x2 the overlapped submatrices of matrix M
+ FIN
+my $m=pdl(shift);
+my $n=pdl($m(0:-2,0:-2),$m(1:-1,0:-2),$m(0:-2,1:-1),$m(1:-1,1:-1))
+ ->mv(-1,0)->sumover;
+say "$m->$n"