diff options
| author | Paulo Custodio <pauloscustodio@gmail.com> | 2021-01-25 20:07:40 +0000 |
|---|---|---|
| committer | Paulo Custodio <pauloscustodio@gmail.com> | 2021-01-25 20:07:40 +0000 |
| commit | c402c40f216b437ab1aba13793d493eb25cbfd14 (patch) | |
| tree | 957f61c2428b4dc71ff703b10fecc17700824d0b /challenge-009 | |
| parent | fcad77840d011bba81e63bb4b76adfdcf06fc96f (diff) | |
| download | perlweeklychallenge-club-c402c40f216b437ab1aba13793d493eb25cbfd14.tar.gz perlweeklychallenge-club-c402c40f216b437ab1aba13793d493eb25cbfd14.tar.bz2 perlweeklychallenge-club-c402c40f216b437ab1aba13793d493eb25cbfd14.zip | |
Replace tabs by spaces so that indentation looks correct
Diffstat (limited to 'challenge-009')
| -rw-r--r-- | challenge-009/paulo-custodio/perl/ch-1.pl | 16 | ||||
| -rw-r--r-- | challenge-009/paulo-custodio/perl/ch-2.pl | 104 | ||||
| -rw-r--r-- | challenge-009/paulo-custodio/test.pl | 9 |
3 files changed, 64 insertions, 65 deletions
diff --git a/challenge-009/paulo-custodio/perl/ch-1.pl b/challenge-009/paulo-custodio/perl/ch-1.pl index 861ab42bad..91efe2ef54 100644 --- a/challenge-009/paulo-custodio/perl/ch-1.pl +++ b/challenge-009/paulo-custodio/perl/ch-1.pl @@ -11,14 +11,14 @@ use warnings; use 5.030; sub num_diff_digits { - my($n) = @_; - my %digits; - while ($n > 0) { - my $digit = $n % 10; - $digits{$digit}++; - $n = int($n/10); - } - return scalar(keys %digits); + my($n) = @_; + my %digits; + while ($n > 0) { + my $digit = $n % 10; + $digits{$digit}++; + $n = int($n/10); + } + return scalar(keys %digits); } my $diff_digits = shift || 5; diff --git a/challenge-009/paulo-custodio/perl/ch-2.pl b/challenge-009/paulo-custodio/perl/ch-2.pl index 554a17b0bc..7ef887ef13 100644 --- a/challenge-009/paulo-custodio/perl/ch-2.pl +++ b/challenge-009/paulo-custodio/perl/ch-2.pl @@ -4,7 +4,7 @@ # # Challenge #2 # Write a script to perform different types of ranking as described below: -# +# # 1. Standard Ranking (1224): Items that compare equal receive the same ranking # number, and then a gap is left in the ranking numbers. # 2. Modified Ranking (1334): It is done by leaving the gaps in the ranking @@ -19,73 +19,73 @@ use 5.030; # in: list of numbers # out: list of items with the same value reverse-ordered by value -# each item is [index, value] +# each item is [index, value] sub rank_values { - my(@list) = @_; - my @sorted = reverse sort {$a->[1] <=> $b->[1]} - map {[$_, $list[$_]]} 0..$#list; - my @output; - while (@sorted) { - my @head; - my $first_value = $sorted[0][1]; - while (@sorted && $sorted[0][1] == $first_value) { - push @head, shift @sorted; - } - push @output, \@head; - } - return @output; + my(@list) = @_; + my @sorted = reverse sort {$a->[1] <=> $b->[1]} + map {[$_, $list[$_]]} 0..$#list; + my @output; + while (@sorted) { + my @head; + my $first_value = $sorted[0][1]; + while (@sorted && $sorted[0][1] == $first_value) { + push @head, shift @sorted; + } + push @output, \@head; + } + return @output; } # in: list of numbers # out: corresponding list of ranking sub standard_ranking { - my(@list) = @_; - my @ranked = rank_values(@list); - my @ranks; - my $rank = 1; - while (@ranked) { - my @head = @{shift @ranked}; - for (@head) { - $ranks[$_->[0]] = $rank; - } - $rank += @head; - } - return @ranks; + my(@list) = @_; + my @ranked = rank_values(@list); + my @ranks; + my $rank = 1; + while (@ranked) { + my @head = @{shift @ranked}; + for (@head) { + $ranks[$_->[0]] = $rank; + } + $rank += @head; + } + return @ranks; } # in: list of numbers # out: corresponding list of ranking sub modified_ranking { - my(@list) = @_; - my @ranked = rank_values(@list); - my @ranks; - my $rank = 1; - while (@ranked) { - my @head = @{shift @ranked}; - $rank += @head - 1; - for (@head) { - $ranks[$_->[0]] = $rank; - } - $rank++; - } - return @ranks; + my(@list) = @_; + my @ranked = rank_values(@list); + my @ranks; + my $rank = 1; + while (@ranked) { + my @head = @{shift @ranked}; + $rank += @head - 1; + for (@head) { + $ranks[$_->[0]] = $rank; + } + $rank++; + } + return @ranks; } # in: list of numbers # out: corresponding list of ranking sub dense_ranking { - my(@list) = @_; - my @ranked = rank_values(@list); - my @ranks; - my $rank = 1; - while (@ranked) { - my @head = @{shift @ranked}; - for (@head) { - $ranks[$_->[0]] = $rank; - } - $rank++; - } - return @ranks; + my(@list) = @_; + my @ranked = rank_values(@list); + my @ranks; + my $rank = 1; + while (@ranked) { + my @head = @{shift @ranked}; + for (@head) { + $ranks[$_->[0]] = $rank; + } + $rank++; + } + return @ranks; } say "Data: ", join(", ", @ARGV); diff --git a/challenge-009/paulo-custodio/test.pl b/challenge-009/paulo-custodio/test.pl index 67cd798753..c5275ed8f4 100644 --- a/challenge-009/paulo-custodio/test.pl +++ b/challenge-009/paulo-custodio/test.pl @@ -24,9 +24,8 @@ done_testing; sub capture { - my($cmd) = @_; - my $out = `$cmd`; - $out =~ s/[ \r\t]*\n/\n/g; - return $out; + my($cmd) = @_; + my $out = `$cmd`; + $out =~ s/[ \r\t]*\n/\n/g; + return $out; } - |
