aboutsummaryrefslogtreecommitdiff
path: root/challenge-279
diff options
context:
space:
mode:
authorLuis Mochan <mochan@fis.unam.mx>2024-07-22 12:20:16 -0600
committerLuis Mochan <mochan@fis.unam.mx>2024-07-22 12:20:16 -0600
commitcbfc3d2f606269eb0272ce941d5a7ba41af9723c (patch)
treee65da132a323a4837e11cb3269286182c86bdf51 /challenge-279
parente875bda7143db20a8f19fbb63fe7b807961c54b8 (diff)
downloadperlweeklychallenge-club-cbfc3d2f606269eb0272ce941d5a7ba41af9723c.tar.gz
perlweeklychallenge-club-cbfc3d2f606269eb0272ce941d5a7ba41af9723c.tar.bz2
perlweeklychallenge-club-cbfc3d2f606269eb0272ce941d5a7ba41af9723c.zip
Solve PWC 279
Diffstat (limited to 'challenge-279')
-rw-r--r--challenge-279/wlmb/blog.txt1
-rwxr-xr-xchallenge-279/wlmb/perl/ch-1.pl24
-rwxr-xr-xchallenge-279/wlmb/perl/ch-2.pl12
3 files changed, 37 insertions, 0 deletions
diff --git a/challenge-279/wlmb/blog.txt b/challenge-279/wlmb/blog.txt
new file mode 100644
index 0000000000..34d157a3bf
--- /dev/null
+++ b/challenge-279/wlmb/blog.txt
@@ -0,0 +1 @@
+https://wlmb.github.io/2024/07/22/PWC279/
diff --git a/challenge-279/wlmb/perl/ch-1.pl b/challenge-279/wlmb/perl/ch-1.pl
new file mode 100755
index 0000000000..a8d3c55c81
--- /dev/null
+++ b/challenge-279/wlmb/perl/ch-1.pl
@@ -0,0 +1,24 @@
+#!/usr/bin/env perl
+# Perl weekly challenge 279
+# Task 1: Sort Letters
+#
+# See https://wlmb.github.io/2024/07/22/PWC279/#task-1-sort-letters
+use v5.36;
+use experimental qw(for_list);
+use List::Util qw(zip);
+die <<~"FIN" unless @ARGV && @ARGV%2==0;
+ Usage: $0 S1 N1 S2 N2...
+ to sort the characters of string Si according to the space-separated numbers Ni.
+ FIN
+PAIRS:
+for my($chars, $numbers)(@ARGV){
+ my @chars = split "", $chars;
+ my @numbers = split " ", $numbers;
+ warn("Expected one number per char: chars: @chars, numbers: @numbers"), next PAIR
+ unless @chars == @numbers;
+ for(@numbers){warn("Only digits allowed: $_"), next PAIR unless /^[\d\s]+$/;}
+ my @schwartz=zip \@chars, \@numbers;
+ my $out = join "", map {$_->[0]} sort {$a->[1] <=> $b->[1] || $a->[0] cmp $b->[0]}
+ @schwartz;
+ say "chars: $chars, numbers: $numbers -> $out";
+}
diff --git a/challenge-279/wlmb/perl/ch-2.pl b/challenge-279/wlmb/perl/ch-2.pl
new file mode 100755
index 0000000000..f58dd81937
--- /dev/null
+++ b/challenge-279/wlmb/perl/ch-2.pl
@@ -0,0 +1,12 @@
+#!/usr/bin/env perl
+# Perl weekly challenge 279
+# Task 2: Split String
+#
+# See https://wlmb.github.io/2024/07/22/PWC279/#task-2-split-string
+use v5.36;
+die <<~"FIN" unless @ARGV;
+ Usage: $0 S1 S2...
+ to check if string Si may be split into strings with the same
+ number of vowels each.
+ FIN
+say "$_ -> ", tr/aeiou//%2==0?"True":"False" for(@ARGV)