aboutsummaryrefslogtreecommitdiff
path: root/challenge-255
diff options
context:
space:
mode:
authorLuis Mochan <mochan@fis.unam.mx>2024-02-05 08:53:39 -0600
committerLuis Mochan <mochan@fis.unam.mx>2024-02-05 08:53:39 -0600
commite3a92ba33f405797167d4646efb4f76c5d23ed7e (patch)
tree1e6b21d2391325e4a4382df588727d12bad3a714 /challenge-255
parentd58258463850d2949fe13a4097a83a5d17951548 (diff)
downloadperlweeklychallenge-club-e3a92ba33f405797167d4646efb4f76c5d23ed7e.tar.gz
perlweeklychallenge-club-e3a92ba33f405797167d4646efb4f76c5d23ed7e.tar.bz2
perlweeklychallenge-club-e3a92ba33f405797167d4646efb4f76c5d23ed7e.zip
Solve PWC255
Diffstat (limited to 'challenge-255')
-rw-r--r--challenge-255/wlmb/blog.txt1
-rwxr-xr-xchallenge-255/wlmb/perl/ch-1.pl19
-rwxr-xr-xchallenge-255/wlmb/perl/ch-2.pl16
3 files changed, 36 insertions, 0 deletions
diff --git a/challenge-255/wlmb/blog.txt b/challenge-255/wlmb/blog.txt
new file mode 100644
index 0000000000..fdbdb25e89
--- /dev/null
+++ b/challenge-255/wlmb/blog.txt
@@ -0,0 +1 @@
+https://wlmb.github.io/2024/02/05/PWC255/
diff --git a/challenge-255/wlmb/perl/ch-1.pl b/challenge-255/wlmb/perl/ch-1.pl
new file mode 100755
index 0000000000..b4fd9c7739
--- /dev/null
+++ b/challenge-255/wlmb/perl/ch-1.pl
@@ -0,0 +1,19 @@
+#!/usr/bin/env perl
+# Perl weekly challenge 255
+# Task 1: Odd Character
+#
+# See https://wlmb.github.io/2024/02/05/PWC255/#task-1-odd-character
+use v5.36;
+use experimental qw(for_list);
+die <<~"FIN" unless @ARGV && @ARGV%2==0;
+ Usage: $0 S0 T0 [S1 T1...]
+ to find the odd characters in the string pairs Sn Tn
+ FIN
+for my ($s,$t)(@ARGV){
+ warn "Length should differ by one" unless length $t == 1+length $s;
+ my %count;
+ ++$count{$_} for split "", fc $s;
+ --$count{$_}||delete $count{$_} for split "", fc $t;
+ warn "More than one odd character" unless (keys %count)==1;
+ say "$t, $s -> ", keys %count;
+}
diff --git a/challenge-255/wlmb/perl/ch-2.pl b/challenge-255/wlmb/perl/ch-2.pl
new file mode 100755
index 0000000000..aabc08ca56
--- /dev/null
+++ b/challenge-255/wlmb/perl/ch-2.pl
@@ -0,0 +1,16 @@
+#!/usr/bin/env perl
+# Perl weekly challenge 255
+# Task 2: Most Frequent Word
+#
+# See https://wlmb.github.io/2024/02/05/PWC255/#task-2-most-frequent-word
+use v5.36;
+use List::UtilsBy qw(max_by);
+die <<~"FIN" unless @ARGV==2;
+ Usage: $0 S ¨P
+ to find the most frequent word in paragraph P excluding the word S
+ FIN
+my ($w, $p)=@ARGV;
+my %count;
+++$count{fc $_} for split /\W+/, $p;
+delete $count{fc $w};
+say "\n$w\n$p\n->\n", max_by{$count{$_}} keys %count;