diff options
| author | KjetilS <kjetilskotheim@gmail.com> | 2024-08-19 12:43:35 +0200 |
|---|---|---|
| committer | KjetilS <kjetilskotheim@gmail.com> | 2024-08-19 12:43:35 +0200 |
| commit | 6e373127a7c1bc8cc7ac4c0be0e43452ef1264fa (patch) | |
| tree | 2790208899b5b737cb7218aa0d2a034c79ef1bec | |
| parent | 77ecff551b5e341658ad156635933ddf47f5ef8e (diff) | |
| download | perlweeklychallenge-club-6e373127a7c1bc8cc7ac4c0be0e43452ef1264fa.tar.gz perlweeklychallenge-club-6e373127a7c1bc8cc7ac4c0be0e43452ef1264fa.tar.bz2 perlweeklychallenge-club-6e373127a7c1bc8cc7ac4c0be0e43452ef1264fa.zip | |
https://theweeklychallenge.org/blog/perl-weekly-challenge-283/
| -rw-r--r-- | challenge-283/kjetillll/perl/ch-1.pl | 14 | ||||
| -rw-r--r-- | challenge-283/kjetillll/perl/ch-2.pl | 14 |
2 files changed, 28 insertions, 0 deletions
diff --git a/challenge-283/kjetillll/perl/ch-1.pl b/challenge-283/kjetillll/perl/ch-1.pl new file mode 100644 index 0000000000..abbf5287d4 --- /dev/null +++ b/challenge-283/kjetillll/perl/ch-1.pl @@ -0,0 +1,14 @@ +use strict; use warnings; use Test::More tests=>5; + +sub once { + my %freq; + $freq{$_}++ for @_; + $freq{$_}==1 and return $_ for @_; + undef +} + +is once( 3, 3, 1 ) => 1; +is once( 3, 2, 4, 2, 4 ) => 3; +is once( 1 ) => 1; +is once( 4, 3, 1, 1, 1, 4 ) => 3; +is once( (1..9) x 2 ) => undef; diff --git a/challenge-283/kjetillll/perl/ch-2.pl b/challenge-283/kjetillll/perl/ch-2.pl new file mode 100644 index 0000000000..487474eca6 --- /dev/null +++ b/challenge-283/kjetillll/perl/ch-2.pl @@ -0,0 +1,14 @@ +use strict; use warnings; use List::Util 'any'; use Test::More tests=>5; + +sub dcv { + my %freq; + $freq{$_}++ for @_; + not any { $_[$_] != ($freq{$_}//0) } 0 .. $#_; +} + +my($true,$false)=(1,''); +is dcv(1,2,1,0) => $true; +is dcv(0,3,0) => $false; +is dcv(2,1,2,0,0) => $true; +is dcv(3,2,1,1,0,0,0) => $true; +is dcv(5,2,1,0,0,1,0,0,0) => $true; |
