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:
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;