diff options
| author | Steven <steven1170@zoho.eu> | 2025-02-08 19:33:55 +0000 |
|---|---|---|
| committer | Steven <steven1170@zoho.eu> | 2025-02-08 19:33:55 +0000 |
| commit | 5f7ed6c50f9c1f87f23c9b28b1f567d7c7b2db6a (patch) | |
| tree | c508b5c5924cac00c21e6037d2cfda422dfc52ef | |
| parent | 735978e34a40c558e7e3996d7ac575eed6ea4738 (diff) | |
| download | perlweeklychallenge-club-5f7ed6c50f9c1f87f23c9b28b1f567d7c7b2db6a.tar.gz perlweeklychallenge-club-5f7ed6c50f9c1f87f23c9b28b1f567d7c7b2db6a.tar.bz2 perlweeklychallenge-club-5f7ed6c50f9c1f87f23c9b28b1f567d7c7b2db6a.zip | |
add solutions week 307 in perl
| -rw-r--r-- | challenge-307/steven-wilson/perl/ch-1.pl | 16 | ||||
| -rw-r--r-- | challenge-307/steven-wilson/perl/ch-2.pl | 22 |
2 files changed, 38 insertions, 0 deletions
diff --git a/challenge-307/steven-wilson/perl/ch-1.pl b/challenge-307/steven-wilson/perl/ch-1.pl new file mode 100644 index 0000000000..9c50d392db --- /dev/null +++ b/challenge-307/steven-wilson/perl/ch-1.pl @@ -0,0 +1,16 @@ +#!/usr/bin/env perl + +use strict; +use v5.35; +use Test2::Bundle::More; + +sub checkOrder { + my @ints = @_; + my @sorted_ints = sort @ints; + return grep { $ints[$_] != $sorted_ints[$_] } 0..scalar @ints - 1; +} + +is_deeply([checkOrder(5, 2, 4, 3, 1)], [0, 2, 3, 4], "Test 1" ); +is_deeply([checkOrder(1, 2, 1, 1, 3)], [1, 3], "Test 2" ); +is_deeply([checkOrder(3, 1, 3, 2, 3)], [0, 1, 3], "Test 3" ); +done_testing(); diff --git a/challenge-307/steven-wilson/perl/ch-2.pl b/challenge-307/steven-wilson/perl/ch-2.pl new file mode 100644 index 0000000000..6d488525e1 --- /dev/null +++ b/challenge-307/steven-wilson/perl/ch-2.pl @@ -0,0 +1,22 @@ +#!/usr/bin/env perl + +use strict; +use v5.35; +use Test2::Bundle::More; + +sub findAnagrams { + my @words = @_; + my @drop_index = grep { + sortString($words[$_]) eq + sortString($words[$_ + 1]) } + 0..scalar @words - 2; + return scalar @words - scalar @drop_index; +} + +sub sortString { + return join "", sort split //, shift; +} + +is(findAnagrams("acca", "dog", "god", "perl", "repl") , 3, "Test 1"); +is(findAnagrams("abba", "baba", "aabb", "ab", "ab") , 2, "Test 2"); +done_testing(); |
