exercism-perl5

Repository for my Perl 5 Exercism exercises
git clone git://git.samirparikh.com/exercism-perl5
Log | Files | Refs | README

commit 17b55567772f3d1eb7997509381b8eafec005154
parent 6f34041b40240191ec8a26c1ec369d02c293b108
Author: Samir Parikh <noreply@samirparikh.com>
Date:   Thu, 12 May 2022 12:57:29 +0000

get 14 out of 15 tests to pass

Diffstat:
Managram/Anagram.pm | 23++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/anagram/Anagram.pm b/anagram/Anagram.pm @@ -4,9 +4,30 @@ use warnings; use Exporter qw<import>; our @EXPORT_OK = qw<match_anagrams>; +sub is_anagram { + my ( $subject, $candidate ) = @_; +# print "subject = $subject\n"; +# print "candidate = $candidate\n"; + my %subject_hash = map { $_ => 1 } split //, $subject; + my %candidate_hash = map { $_ => 1 } split //, $candidate; + return 0 if ( $subject eq $candidate ); + return 0 if ( length( $subject ) != length( $candidate ) ); + return 1 unless grep (!$candidate_hash{ $_ }, keys %subject_hash); + return 0; +} + sub match_anagrams { my ($input) = @_; - return undef; + my @output; + #print "$input->{subject}\n"; +# print "@{ $input->{candidates} }\n"; +# print "$input->{candidates}->[0]\n"; + foreach ( @{ $input->{candidates} } ) { + #is_anagram( $input->{subject}, $_ ); + push @output => $_ if is_anagram( lc $input->{subject}, lc $_ ); + } + #return undef; + return \@output; } 1;