aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2020-08-30 12:44:39 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2020-08-30 12:44:39 +0100
commite2363e0a7f4e837ea4ecc53c2d616f69fe618c34 (patch)
tree631067af314676e75ed3828befb67e16a8f77820
parent346d49c1558c193cdc9a8d9fe1298ba1f1e06f7a (diff)
downloadperlweeklychallenge-club-e2363e0a7f4e837ea4ecc53c2d616f69fe618c34.tar.gz
perlweeklychallenge-club-e2363e0a7f4e837ea4ecc53c2d616f69fe618c34.tar.bz2
perlweeklychallenge-club-e2363e0a7f4e837ea4ecc53c2d616f69fe618c34.zip
- Tidied up Raku solutions.
-rwxr-xr-xchallenge-075/mohammad-anwar/raku/ch-2.raku96
-rwxr-xr-xchallenge-075/mohammad-anwar/raku/ch-2.t96
2 files changed, 0 insertions, 192 deletions
diff --git a/challenge-075/mohammad-anwar/raku/ch-2.raku b/challenge-075/mohammad-anwar/raku/ch-2.raku
index 024006d590..a591c6e9f1 100755
--- a/challenge-075/mohammad-anwar/raku/ch-2.raku
+++ b/challenge-075/mohammad-anwar/raku/ch-2.raku
@@ -106,99 +106,3 @@ sub prepare(Str $list is copy) {
$list ~~ s:g/\s//;
return [ $list.split(',').map({ .Int }) ];
}
-
-=finish
-
-my $list = prepare($L);
-print chart($list), "\n\n";
-print "Largest Rectangle Histogram: ", largest_rectangle_histogram($list), "\n";
-
-#
-#
-# METHODS
-
-sub largest_rectangle_histogram {
- my ($list) = @_;
-
- my $i = 0;
- my $max = 0;
- foreach my $n (@$list) {
-
- my ($left, $right) = (0, 0);
- $left = go_left($i, $list) if ($i > 0);
- $right = go_right($i, $list) if ($i <= $#$list);
-
- my @heights = (@$list)[$i - $left .. $i + $right];
- my $size = min(@heights) * @heights;
- $max = $size if ($size > $max);
-
- $i++;
- }
-
- return $max;
-}
-
-sub go_left {
- my ($i, $list) = @_;
-
- my $c = $list->[$i];
- my $j = 0;
- while ($i > 0) {
- $i--;
- last if ($list->[$i] < $c);
- $j++;
- }
-
- return $j;
-}
-
-sub go_right {
- my ($i, $list) = @_;
-
- my $c = $list->[$i];
- my $j = 0;
- while ($i < $#$list) {
- $i++;
- last if ($list->[$i] < $c);
- $j++;
- }
-
- return $j;
-}
-
-sub chart {
- my ($list) = @_;
-
- my $max = max(@$list);
- my $chart = [];
- my $row = 1;
- foreach (1..$max) {
- my $data = "";
- foreach my $i (0..$#$list) {
- if ($row <= $list->[$i]) {
- $data .= " #";
- }
- else {
- $data .= " ";
- }
- }
- $row++;
- push @$chart, sprintf("%d%s", $_, $data);
- }
-
- my ($histogram, $line, $size) = ("", "", " ");
- $histogram = join "\n", (reverse @$chart);
- $line .= "_ " for (0..$#$list + 1);
- $size .= join " ", @$list;
-
- return join "\n", $histogram, $line, $size;
-}
-
-sub prepare {
- my ($list) = @_;
-
- if (defined $list) {
- $list =~ s/\s//g;
- return [ split /\,/, $list ];
- }
-}
diff --git a/challenge-075/mohammad-anwar/raku/ch-2.t b/challenge-075/mohammad-anwar/raku/ch-2.t
index b0e420faa3..f6e50809da 100755
--- a/challenge-075/mohammad-anwar/raku/ch-2.t
+++ b/challenge-075/mohammad-anwar/raku/ch-2.t
@@ -104,99 +104,3 @@ sub prepare(Str $list is copy) {
$list ~~ s:g/\s//;
return [ $list.split(',').map({ .Int }) ];
}
-
-=finish
-
-my $list = prepare($L);
-print chart($list), "\n\n";
-print "Largest Rectangle Histogram: ", largest_rectangle_histogram($list), "\n";
-
-#
-#
-# METHODS
-
-sub largest_rectangle_histogram {
- my ($list) = @_;
-
- my $i = 0;
- my $max = 0;
- foreach my $n (@$list) {
-
- my ($left, $right) = (0, 0);
- $left = go_left($i, $list) if ($i > 0);
- $right = go_right($i, $list) if ($i <= $#$list);
-
- my @heights = (@$list)[$i - $left .. $i + $right];
- my $size = min(@heights) * @heights;
- $max = $size if ($size > $max);
-
- $i++;
- }
-
- return $max;
-}
-
-sub go_left {
- my ($i, $list) = @_;
-
- my $c = $list->[$i];
- my $j = 0;
- while ($i > 0) {
- $i--;
- last if ($list->[$i] < $c);
- $j++;
- }
-
- return $j;
-}
-
-sub go_right {
- my ($i, $list) = @_;
-
- my $c = $list->[$i];
- my $j = 0;
- while ($i < $#$list) {
- $i++;
- last if ($list->[$i] < $c);
- $j++;
- }
-
- return $j;
-}
-
-sub chart {
- my ($list) = @_;
-
- my $max = max(@$list);
- my $chart = [];
- my $row = 1;
- foreach (1..$max) {
- my $data = "";
- foreach my $i (0..$#$list) {
- if ($row <= $list->[$i]) {
- $data .= " #";
- }
- else {
- $data .= " ";
- }
- }
- $row++;
- push @$chart, sprintf("%d%s", $_, $data);
- }
-
- my ($histogram, $line, $size) = ("", "", " ");
- $histogram = join "\n", (reverse @$chart);
- $line .= "_ " for (0..$#$list + 1);
- $size .= join " ", @$list;
-
- return join "\n", $histogram, $line, $size;
-}
-
-sub prepare {
- my ($list) = @_;
-
- if (defined $list) {
- $list =~ s/\s//g;
- return [ split /\,/, $list ];
- }
-}