diff options
| author | CY Fung <fungcheokyin@gmail.com> | 2023-12-18 00:36:26 +0800 |
|---|---|---|
| committer | CY Fung <fungcheokyin@gmail.com> | 2023-12-18 00:36:26 +0800 |
| commit | 4f2f08eefa31bd54d6cf3ae7258f090c0f267f3b (patch) | |
| tree | 16fb71d51866472ea5c6a723c05876140ba34287 | |
| parent | 5af36a7698c988cadd730f4b43fc369feab365c1 (diff) | |
| download | perlweeklychallenge-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.pl | 20 |
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"; |
