aboutsummaryrefslogtreecommitdiff
path: root/challenge-255
diff options
context:
space:
mode:
authorKjetil Skotheim <kjetil.skotheim@sikt.no>2024-02-05 22:10:36 +0100
committerKjetil Skotheim <kjetil.skotheim@sikt.no>2024-02-05 22:10:36 +0100
commitcd316e86baf4f38d1c81b7679ea4a736edf23724 (patch)
tree1f9cbe4f74aab58ae03f58d76ad3cd524e64b56b /challenge-255
parent308775b9181479af42e5e407efbff5d4607dcbd2 (diff)
downloadperlweeklychallenge-club-cd316e86baf4f38d1c81b7679ea4a736edf23724.tar.gz
perlweeklychallenge-club-cd316e86baf4f38d1c81b7679ea4a736edf23724.tar.bz2
perlweeklychallenge-club-cd316e86baf4f38d1c81b7679ea4a736edf23724.zip
https://theweeklychallenge.org/blog/perl-weekly-challenge-255/
Diffstat (limited to 'challenge-255')
-rw-r--r--challenge-255/kjetillll/perl/ch-1.pl11
-rw-r--r--challenge-255/kjetillll/perl/ch-2.pl16
2 files changed, 27 insertions, 0 deletions
diff --git a/challenge-255/kjetillll/perl/ch-1.pl b/challenge-255/kjetillll/perl/ch-1.pl
new file mode 100644
index 0000000000..5c35b9b15b
--- /dev/null
+++ b/challenge-255/kjetillll/perl/ch-1.pl
@@ -0,0 +1,11 @@
+sub odd_char {
+ my %toggle;
+ $toggle{$_}++ and delete $toggle{$_} for "@_ "=~/./gs;
+ (keys%toggle)[0];
+}
+
+use Test::More;
+is( odd_char("Perl", "Preel") => 'e' );
+is( odd_char("Weekly", "Weeakly") => 'a' );
+is( odd_char("Box", "Boxy") => 'y' );
+done_testing;
diff --git a/challenge-255/kjetillll/perl/ch-2.pl b/challenge-255/kjetillll/perl/ch-2.pl
new file mode 100644
index 0000000000..b59c2b8225
--- /dev/null
+++ b/challenge-255/kjetillll/perl/ch-2.pl
@@ -0,0 +1,16 @@
+sub most_frequent_unbanned_word {
+ my($paragraph,$banned)=@_;
+ my %frequency;
+ my $letters='a-z';
+ $frequency{$_}++ for $paragraph=~/[$letters]+/gi;
+ delete $frequency{$banned};
+ ( sort{ $frequency{$b} <=> $frequency{$a} or $a cmp $b} keys %frequency )[0]
+}
+
+use Test::More;
+is( most_frequent_unbanned_word("Joe hit a ball, the hit ball flew far after it was hit.",
+ "hit") => 'ball' );
+is( most_frequent_unbanned_word("Perl and Raku belong to the same family. Perl is the
+ most popular language in the weekly challenge.",
+ "the") => 'Perl' );
+done_testing;