diff options
| author | Luis Mochan <mochan@fis.unam.mx> | 2024-07-22 12:20:16 -0600 |
|---|---|---|
| committer | Luis Mochan <mochan@fis.unam.mx> | 2024-07-22 12:20:16 -0600 |
| commit | cbfc3d2f606269eb0272ce941d5a7ba41af9723c (patch) | |
| tree | e65da132a323a4837e11cb3269286182c86bdf51 /challenge-279 | |
| parent | e875bda7143db20a8f19fbb63fe7b807961c54b8 (diff) | |
| download | perlweeklychallenge-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.txt | 1 | ||||
| -rwxr-xr-x | challenge-279/wlmb/perl/ch-1.pl | 24 | ||||
| -rwxr-xr-x | challenge-279/wlmb/perl/ch-2.pl | 12 |
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) |
