diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-06-26 23:25:19 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-26 23:25:19 +0100 |
| commit | 37995bdab7a403016e8240205459674cf162b5e0 (patch) | |
| tree | 07e2467f04d43cb59dd1519d62e0dc6ad64c7792 | |
| parent | 297818719258717c3e144484cb57ffc13d5e0649 (diff) | |
| parent | 21e4f56560188a060243429b8ecee6f994c9d70e (diff) | |
| download | perlweeklychallenge-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.pl | 6 | ||||
| -rw-r--r-- | challenge-327/kjetillll/perl/ch-2.pl | 18 |
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] ]; |
