aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-06-26 23:25:19 +0100
committerGitHub <noreply@github.com>2025-06-26 23:25:19 +0100
commit37995bdab7a403016e8240205459674cf162b5e0 (patch)
tree07e2467f04d43cb59dd1519d62e0dc6ad64c7792
parent297818719258717c3e144484cb57ffc13d5e0649 (diff)
parent21e4f56560188a060243429b8ecee6f994c9d70e (diff)
downloadperlweeklychallenge-club-37995bdab7a403016e8240205459674cf162b5e0.tar.gz
perlweeklychallenge-club-37995bdab7a403016e8240205459674cf162b5e0.tar.bz2
perlweeklychallenge-club-37995bdab7a403016e8240205459674cf162b5e0.zip
Merge pull request #12240 from kjetillll/challenge-327-kjetillll
https://theweeklychallenge.org/blog/perl-weekly-challenge-327/
-rw-r--r--challenge-327/kjetillll/perl/ch-1.pl6
-rw-r--r--challenge-327/kjetillll/perl/ch-2.pl18
2 files changed, 24 insertions, 0 deletions
diff --git a/challenge-327/kjetillll/perl/ch-1.pl b/challenge-327/kjetillll/perl/ch-1.pl
new file mode 100644
index 0000000000..03b7577da5
--- /dev/null
+++ b/challenge-327/kjetillll/perl/ch-1.pl
@@ -0,0 +1,6 @@
+sub f {
+ my %hash = map { $_ => 1 } @_;
+ grep !exists $hash{$_}, 1 .. @_
+}
+
+print pop(@$_) eq join(',',f( @$_ )) ? "ok\n" : "err\n" for [1,2,1,3,2,5,'4,6'], [1,1,1,'2,3'], [2,2,1,'3'];
diff --git a/challenge-327/kjetillll/perl/ch-2.pl b/challenge-327/kjetillll/perl/ch-2.pl
new file mode 100644
index 0000000000..dd42c340e6
--- /dev/null
+++ b/challenge-327/kjetillll/perl/ch-2.pl
@@ -0,0 +1,18 @@
+use warnings; use strict;
+
+sub f {
+ my @i = sort {$a<=>$b} @_;
+ my $min='+Inf';
+ my @result;
+ for( 0 .. @i-2 ){
+ my $diff = $i[$_+1] - $i[$_];
+ ($min, @result) = ($diff) if $diff < $min;
+ push @result, [ @i[ $_, $_+1 ] ] if $diff == $min;
+ }
+ @result;
+}
+
+use Test::More tests => 3;
+is_deeply [ f(4, 1, 2, 3) ], [ [1,2], [2,3], [3,4] ];
+is_deeply [ f(1, 3, 7, 11, 15) ], [ [1,3] ];
+is_deeply [ f(1, 5, 3, 8) ], [ [1,3], [3,5] ];