aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-02-08 19:38:19 +0000
committerGitHub <noreply@github.com>2025-02-08 19:38:19 +0000
commit8d78d1e745ab0990855d80801c8ac5f724aa9f1a (patch)
treeb29b9f509dd5a20616cee610ec3c56181c18e1f4
parent594c509a37a29e9f6603651f4a709fd2902a1399 (diff)
parent5f7ed6c50f9c1f87f23c9b28b1f567d7c7b2db6a (diff)
downloadperlweeklychallenge-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.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();