diff options
| author | Alexander Karelas <karjala@cpan.org> | 2025-07-21 10:12:05 +0300 |
|---|---|---|
| committer | Alexander Karelas <karjala@cpan.org> | 2025-07-21 10:12:05 +0300 |
| commit | 2a1495b99a027801a82f3df4c524188e451d8664 (patch) | |
| tree | 04e45d1148f930d19d3ff2c96bb1fccf28288eab /challenge-331 | |
| parent | e0f7e800fc8f1b2cb50896852a0a3ed61980f510 (diff) | |
| download | perlweeklychallenge-club-2a1495b99a027801a82f3df4c524188e451d8664.tar.gz perlweeklychallenge-club-2a1495b99a027801a82f3df4c524188e451d8664.tar.bz2 perlweeklychallenge-club-2a1495b99a027801a82f3df4c524188e451d8664.zip | |
solutions to 331
Diffstat (limited to 'challenge-331')
| -rwxr-xr-x | challenge-331/alexander-karelas/perl/ch-1.pl | 16 | ||||
| -rwxr-xr-x | challenge-331/alexander-karelas/perl/ch-2.pl | 21 |
2 files changed, 37 insertions, 0 deletions
diff --git a/challenge-331/alexander-karelas/perl/ch-1.pl b/challenge-331/alexander-karelas/perl/ch-1.pl new file mode 100755 index 0000000000..392c84dcf8 --- /dev/null +++ b/challenge-331/alexander-karelas/perl/ch-1.pl @@ -0,0 +1,16 @@ +#!/usr/bin/env perl + +use v5.42; + +use Test2::V0; + +sub ll ($string) { + my ($word) = $string =~ /(\w+)\s*\z/; + return length $word; +} + +is ll("The Weekly Challenge"), 9, 'Example 1'; +is ll(" Hello World "), 5, 'Example 2'; +is ll("Let's begin the fun"), 3, 'Example 3'; + +done_testing; diff --git a/challenge-331/alexander-karelas/perl/ch-2.pl b/challenge-331/alexander-karelas/perl/ch-2.pl new file mode 100755 index 0000000000..5ca3d6029d --- /dev/null +++ b/challenge-331/alexander-karelas/perl/ch-2.pl @@ -0,0 +1,21 @@ +#!/usr/bin/env perl + +use v5.42; + +use Test2::V0; + +sub buddy_strings ($str1, $str2) { + $str1 ne $str2 or return $str1 =~ /(\w).*\1/; + my @l = map [split //, $_], $str1, $str2; + $l[0]->@* == $l[1]->@* or return false; + + my @diffs = grep { $_ !~ /(\w)\1/ } map "$l[0][$_]$l[1][$_]", 0 .. $#{$l[0]}; + return @diffs == 2 && $diffs[0] eq reverse $diffs[1]; +} + +is buddy_strings('fuck', 'fcuk'), true, 'Example 1'; +is buddy_strings('love', 'love'), false, 'Example 2'; +is buddy_strings('fodo', 'food'), true, 'Example 3'; +is buddy_strings('feed', 'feed'), true, 'Example 4'; + +done_testing; |
