aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCY Fung <fungcheokyin@gmail.com>2023-12-18 00:36:26 +0800
committerCY Fung <fungcheokyin@gmail.com>2023-12-18 00:36:26 +0800
commit4f2f08eefa31bd54d6cf3ae7258f090c0f267f3b (patch)
tree16fb71d51866472ea5c6a723c05876140ba34287
parent5af36a7698c988cadd730f4b43fc369feab365c1 (diff)
downloadperlweeklychallenge-club-4f2f08eefa31bd54d6cf3ae7258f090c0f267f3b.tar.gz
perlweeklychallenge-club-4f2f08eefa31bd54d6cf3ae7258f090c0f267f3b.tar.bz2
perlweeklychallenge-club-4f2f08eefa31bd54d6cf3ae7258f090c0f267f3b.zip
Week 247 Task 2
-rw-r--r--challenge-247/cheok-yin-fung/perl/ch-2.pl20
1 files changed, 20 insertions, 0 deletions
diff --git a/challenge-247/cheok-yin-fung/perl/ch-2.pl b/challenge-247/cheok-yin-fung/perl/ch-2.pl
new file mode 100644
index 0000000000..672f922235
--- /dev/null
+++ b/challenge-247/cheok-yin-fung/perl/ch-2.pl
@@ -0,0 +1,20 @@
+use v5.30.0;
+use warnings;
+use List::Util qw/max/;
+use List::MoreUtils qw/slide/;
+
+sub ch {
+ my $str = $_[0];
+ my @arr = split "", $str;
+ my @pairs = slide {$a.$b} @arr;
+ my %freq;
+ $freq{$_}++ for @pairs;
+ my $mx = max values %freq;
+ my @ps = sort {$a cmp $b} grep {$freq{$_} == $mx} keys %freq;
+ return $ps[0];
+}
+
+
+use Test::More tests=>2;
+ok ch("abcdbca") eq "bc";
+ok ch("cdeabeabfcdfabgcd") eq "ab";