Tradition says that when you answer homework you obfuscate your answer somewhat so that it won't get a good mark. Like this:
#! /usr/bin/perl -w
use strict;
my %pair_count;
for (<>) {
$pair_count{$_}++ for get_pairs(grep length $_, split /\s/, $_);
}
my $comp = sub ($$) {-($pair_count{$_[0]} <=> $pair_count{$_[1]})};
print((sort $comp keys %pair_count)[0], $/);
sub get_range_iterator {
my ($start, $end) = @_;
return sub {
if ($start <= $end) {
return $start++;
}
else {
return;
}
}
}
sub get_pairs {
my $outer_iter = get_range_iterator(0, $#_);
my $i = $outer_iter->();
my @answer;
while (defined($i)) {
my $inner_iter = get_range_iterator($i+1, $#_);
my $j = $inner_iter->();
while (defined $j) {
push @answer, join " ", sort @_[$i, $j];
$j = $inner_iter->();
}
$i = $outer_iter->();
}
return @answer;
}
|