diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-02-08 19:38:19 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-08 19:38:19 +0000 |
| commit | 8d78d1e745ab0990855d80801c8ac5f724aa9f1a (patch) | |
| tree | b29b9f509dd5a20616cee610ec3c56181c18e1f4 | |
| parent | 594c509a37a29e9f6603651f4a709fd2902a1399 (diff) | |
| parent | 5f7ed6c50f9c1f87f23c9b28b1f567d7c7b2db6a (diff) | |
| download | perlweeklychallenge-club-8d78d1e745ab0990855d80801c8ac5f724aa9f1a.tar.gz perlweeklychallenge-club-8d78d1e745ab0990855d80801c8ac5f724aa9f1a.tar.bz2 perlweeklychallenge-club-8d78d1e745ab0990855d80801c8ac5f724aa9f1a.zip | |
Merge pull request #11542 from oWnOIzRi/week307
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(); |
