aboutsummaryrefslogtreecommitdiff
path: root/challenge-005/e-choroba/perl5/ch-2.pl
blob: 3ddc9864446d30b1fa085a5a20735d8b4e738686 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/perl
use warnings;
use strict;
use feature qw{ say };

sub factorial {
    my ($n) = @_;
    $n *= $_ for 2 .. $n - 1;
    return $n
}

my @max = (0, "");
while (my $word = <>) {
    chomp $word;
    my %frequency;
    ++$frequency{$_} for my @letters = split //, $word;
    my $count = factorial(scalar @letters);
    $count /= factorial($frequency{$_}) for keys %frequency;
    @max = ($count, $word) if $count > $max[0];
}

say "@max";