aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Lynn <bizlsg@localhost.localdomain>2022-12-10 09:44:17 +0800
committerStephen Lynn <bizlsg@localhost.localdomain>2022-12-10 09:44:17 +0800
commit64dce99fb3954e07ab6bc702e813b89ec1553087 (patch)
treeeb86560d0be49d607120887342f0b3ea39804442
parentf92b7873bbf273d639c66ed8a207f51816847d27 (diff)
downloadperlweeklychallenge-club-64dce99fb3954e07ab6bc702e813b89ec1553087.tar.gz
perlweeklychallenge-club-64dce99fb3954e07ab6bc702e813b89ec1553087.tar.bz2
perlweeklychallenge-club-64dce99fb3954e07ab6bc702e813b89ec1553087.zip
bugfix ch-2
-rwxr-xr-xchallenge-194/steve-g-lynn/perl/ch-2.pl8
-rwxr-xr-xchallenge-194/steve-g-lynn/raku/ch-2.p64
2 files changed, 7 insertions, 5 deletions
diff --git a/challenge-194/steve-g-lynn/perl/ch-2.pl b/challenge-194/steve-g-lynn/perl/ch-2.pl
index 72bc6baa55..65f6404b6f 100755
--- a/challenge-194/steve-g-lynn/perl/ch-2.pl
+++ b/challenge-194/steve-g-lynn/perl/ch-2.pl
@@ -3,12 +3,11 @@
use strict;
use warnings;
-use List::Util qw(min max);
-
print frequency_equalizer('abbc'),"\n"; #1
print frequency_equalizer('xyzyyxz'),"\n"; #1
print frequency_equalizer('xzxz'),"\n"; #0
-
+print frequency_equalizer('abcde'),"\n"; #1
+print frequency_equalizer('abbbccc'),"\n"; #1
sub frequency_equalizer {
my ($s) = @_;
@@ -27,7 +26,8 @@ sub frequency_equalizer {
@s = sort keys %uniq;
- ( (scalar(@s)==2) && (min(@s)==(max(@s)-1)) ) &&
+ ( (scalar(@s) <= 2) && ( ($s[0]==1) ||
+ ( exists($s[1]) && (abs($s[1] - $s[0])==1) ) ) ) &&
(return 1);
return 0;
diff --git a/challenge-194/steve-g-lynn/raku/ch-2.p6 b/challenge-194/steve-g-lynn/raku/ch-2.p6
index 595f4fbcfc..16448dca44 100755
--- a/challenge-194/steve-g-lynn/raku/ch-2.p6
+++ b/challenge-194/steve-g-lynn/raku/ch-2.p6
@@ -3,6 +3,8 @@
say frequency-equalizer('abbc'); #1
say frequency-equalizer('xyzyyxz'); #1
say frequency-equalizer('xzxz'); #0
+say frequency-equalizer('abcde'); #1
+say frequency-equalizer('abbbccc'); #1
sub frequency-equalizer( Str $s ) {
@@ -20,7 +22,7 @@ sub frequency-equalizer( Str $s ) {
@s = %uniq.keys.sort;
- ( ( @s.elems == 2 ) && (@s.min==(@s.max-1)) ) &&
+ ( ( @s.elems <= 2 ) && ( @s.min==1 || (@s.min==(@s.max-1))) ) &&
(return 1);
return 0;