diff options
| -rw-r--r-- | challenge-194/james-smith/perl/ch-2.pl | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/challenge-194/james-smith/perl/ch-2.pl b/challenge-194/james-smith/perl/ch-2.pl new file mode 100644 index 0000000000..167860f910 --- /dev/null +++ b/challenge-194/james-smith/perl/ch-2.pl @@ -0,0 +1,18 @@ +#!/usr/local/bin/perl + +use strict; + +use warnings; +use feature qw(say); +use Test::More; +use Benchmark qw(cmpthese timethis); + +my @TESTS = ( ['abbc',1],['xyzyyxz',1],['xzxz',0] ); + +is( check( $_->[0] ), $_->[1] ) for @TESTS; +done_testing(); + +sub check { + my %sc; $sc{$_} ++ for split //,$_[0]; + sub { @_>2 && $_[0]==$_[1]+1 && $_[-1]==$_[1] ? 1 : 0 }->(sort {$b<=>$a} values %sc); +} |
