aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven <steven1170@zoho.eu>2025-02-08 19:33:55 +0000
committerSteven <steven1170@zoho.eu>2025-02-08 19:33:55 +0000
commit5f7ed6c50f9c1f87f23c9b28b1f567d7c7b2db6a (patch)
treec508b5c5924cac00c21e6037d2cfda422dfc52ef
parent735978e34a40c558e7e3996d7ac575eed6ea4738 (diff)
downloadperlweeklychallenge-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.pl16
-rw-r--r--challenge-307/steven-wilson/perl/ch-2.pl22
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();