aboutsummaryrefslogtreecommitdiff
path: root/challenge-009
diff options
context:
space:
mode:
authorPaulo Custodio <pauloscustodio@gmail.com>2021-01-25 20:07:40 +0000
committerPaulo Custodio <pauloscustodio@gmail.com>2021-01-25 20:07:40 +0000
commitc402c40f216b437ab1aba13793d493eb25cbfd14 (patch)
tree957f61c2428b4dc71ff703b10fecc17700824d0b /challenge-009
parentfcad77840d011bba81e63bb4b76adfdcf06fc96f (diff)
downloadperlweeklychallenge-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.pl16
-rw-r--r--challenge-009/paulo-custodio/perl/ch-2.pl104
-rw-r--r--challenge-009/paulo-custodio/test.pl9
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;
}
-