From ff53a9f766cbfd9f8026da1122cf475993f1e004 Mon Sep 17 00:00:00 2001 From: drbaggy Date: Fri, 12 Feb 2021 09:37:50 +0000 Subject: tidied up script --- challenge-099/james-smith/perl/ch-2.pl | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/challenge-099/james-smith/perl/ch-2.pl b/challenge-099/james-smith/perl/ch-2.pl index d0a3231645..cd9531a4fd 100644 --- a/challenge-099/james-smith/perl/ch-2.pl +++ b/challenge-099/james-smith/perl/ch-2.pl @@ -35,10 +35,9 @@ is( uniq_subseq_cache('abcabcabcabcabcabcabcabcabc','abc'),165 ); done_testing(); sub uniq_subseq { - my( $str, $sub ) = @_; + my( $res, $str, $sub ) = ( 0, @_ ); my $f = substr $sub, 0, 1, q(); return scalar @{[ $str =~ m{$f}g ]} if $sub eq q(); - my $res = 0; $res += uniq_subseq( $str, $sub ) while $str=~s{.*?$f}{}; return $res; } @@ -65,13 +64,11 @@ sub display_uniq_subseq { } sub uniq_subseq_cache { - my( $str, $sub ) = @_; - my $k = "$str-$sub"; - return $c->{$k} if exists $c->{$k}; + my( $res, $k, $str, $sub ) = ( 0, "$_[0]-$_[1]", @_ ); my $f = substr $sub, 0, 1, q(); + return $c->{$k} if exists $c->{$k}; return $c->{$k} = scalar @{[ $str =~ m{$f}g ]} if $sub eq q(); - my $res = 0; - $res += uniq_subseq( $str, $sub ) while $str=~s{.*?$f}{}; + $res += uniq_subseq_cache( $str, $sub ) while $str=~s{.*?$f}{}; return $c->{$k} = $res; } -- cgit