diff options
| author | 冯昶 <fengchang@novel-supertv.com> | 2020-09-07 23:34:03 +0800 |
|---|---|---|
| committer | 冯昶 <fengchang@novel-supertv.com> | 2020-09-07 23:34:03 +0800 |
| commit | 1ec534344090149ac3944e320df6d639172d9d7c (patch) | |
| tree | 94f00cc775e682a5bd68b7e6006501c4eb146bf1 | |
| parent | ca24b5924f2b84056eabd038d7df5be28876a4a2 (diff) | |
| parent | 97c8188e223a0724e62df22564e2e95c469cfaf8 (diff) | |
| download | perlweeklychallenge-club-1ec534344090149ac3944e320df6d639172d9d7c.tar.gz perlweeklychallenge-club-1ec534344090149ac3944e320df6d639172d9d7c.tar.bz2 perlweeklychallenge-club-1ec534344090149ac3944e320df6d639172d9d7c.zip | |
Merge remote-tracking branch 'upstream/master'
26 files changed, 2617 insertions, 2002 deletions
diff --git a/challenge-075/bob-lied/README b/challenge-075/bob-lied/README index e3712fbb10..e0e8e4f76c 100644 --- a/challenge-075/bob-lied/README +++ b/challenge-075/bob-lied/README @@ -1,53 +1,2 @@ -Solutions to weekly challenge 74 by Bob Lied. - -https://perlweeklychallenge.org/blog/perl-weekly-challenge-074/ - -* TASK #1 > Majority Element - -** Initial thoughts - -This is going to be an exercise in hashes and grep. - -** Post Solution Thoughts - -Use a hash to count to count elements, then use grep with a code block to select the match. - -** Problem Statement - -You are given an array of integers of size $N. -Write a script to find the majority element. If none found then print -1. -Majority element in the list is the one that appears more than floor(size_of_list/2). - - - -* TASK #2 > FNR Character - -** Initial Thoughts - -The specification is a little odd and doesn't match the example. But, OK, whatever. -Similar to the first task, another hash to count occurrences and grep to find the answers. - -** Post Solution Thoughts - -Going through the string could be either done with substr one character at a time, -or splitting the string into an array of characters. Finding the first char could be -a search through the character positions, or a sort and picking off the first element. -Sort is the easy answer, but I'm always wary of scaling. Like in many of these -problems, it's not an issue for "reasonable" strings, but could become a performance -question if the strings were a thousand or a million times bigger. - - -** Problem Statement - -You are given a string $S. - -Write a script to print the series of first non-repeating character -(left -> right) for the given string. Print # if none found. -Example 1 -Input: $S = ‘ababc’ -Output: ‘abb#c’ -Pass 1: “a”, the FNR character is ‘a’ -Pass 2: “ab”, the FNR character is ‘b’ -Pass 3: “aba”, the FNR character is ‘b’ -Pass 4: “abab”, no FNR found, hence ‘#’ -Pass 5: “ababc” the FNR character is ‘c’ +Solutions to Perl Weekly Challenge 075 by Bob Lied +https://perlweeklychallenge.org/blog/perl-weekly-challenge-075/ diff --git a/challenge-075/bob-lied/perl/ch-1.pl b/challenge-075/bob-lied/perl/ch-1.pl new file mode 100644 index 0000000000..c0e4a6bc8d --- /dev/null +++ b/challenge-075/bob-lied/perl/ch-1.pl @@ -0,0 +1,51 @@ +#!/usr/bin/perl +# vim:set ts=4 sw=4 sts=4 et ai wm=0 nu syntax=perl: +# +# Copyright (c) 2020 Bob Lied +# The copyright notice above does not evidence any actual +# or intended publication of such source code. + +#=============================================================================== +# ch-1.pl +# +# Description: +# Perl Weekly Challenge 075 Task #1 > Coins Sum +#=============================================================================== +# You are given a set of coins @C, assuming you have infinite amount of each coin in the set. +# Write a script to find how many ways you make sum $S using the coins from the set @C. +# +# Example: +# Input: +# @C = (1, 2, 4) +# $S = 6 +# +# Output: 6 +# There are 6 possible ways to make sum 6. +# a) (1, 1, 1, 1, 1, 1) +# b) (1, 1, 1, 1, 2) +# c) (1, 1, 2, 2) +# d) (1, 1, 4) +# e) (2, 2, 2) +# f) (2, 4) + +use strict; +use warnings; +use feature qw(say); + +use Data::Dumper; + +use lib "lib"; +use CoinSum qw(coinSum); + +sub Usage { "Usage: $0 SUM coin1 [coin2..coinN]" }; + +my $S = shift; +my @C = @ARGV; + +die Usage() unless $S; +die Usage() unless @C; + + +my $result = coinSum($S, @C); + +say "[ @$_ ]" foreach @$result; diff --git a/challenge-075/bob-lied/perl/ch-2.pl b/challenge-075/bob-lied/perl/ch-2.pl new file mode 100644 index 0000000000..387d76ffe5 --- /dev/null +++ b/challenge-075/bob-lied/perl/ch-2.pl @@ -0,0 +1,30 @@ +#!/usr/bin/env perl +# vim:set ts=4 sw=4 sts=4 et ai wm=0 nu: +#============================================================================= +# ch-2.pl +#============================================================================= +# Copyright (c) 2020, Bob Lied +#============================================================================= +# Perl Weekly Challenge 075 TASK #2> Largest Rectangle Histogram +#============================================================================= +# You are given an array of positive numbers @A. +# Write a script to find the largest rectangle histogram created by the given array. +# BONUS: Try to print the histogram as shown in the example, if possible. + +use strict; +use warnings; +use feature q(say); + +use lib "lib"; +use LargestRectangleHistogram; + +my @A = @ARGV; +die "Usage: list of positive integers" unless @A; + +my $lrh = LargestRectangleHistogram->new(@A); + +# $lrh->_show(); +say "Max area: ", $lrh->findLRH(); + +$lrh->display(); + diff --git a/challenge-075/bob-lied/perl/lib/CoinSum.pm b/challenge-075/bob-lied/perl/lib/CoinSum.pm new file mode 100644 index 0000000000..e95500aa60 --- /dev/null +++ b/challenge-075/bob-lied/perl/lib/CoinSum.pm @@ -0,0 +1,79 @@ +# vim:set ts=4 sw=4 sts=4 et ai wm=0 nu syntax=perl: +# +# Copyright (c) 2020 Bob Lied +# The copyright notice above does not evidence any actual +# or intended publication of such source code. + +#=============================================================================== +# CoinSum.pm +# +# Description: +# +#=============================================================================== + +package CoinSum; + +use strict; +use warnings; +use 5.010; +use Carp; + +require Exporter; +our @ISA = qw(Exporter); +our @EXPORT = qw(coinSum); +our @EXPORT_OK = qw(); + + +my @ComboList; + +sub _coinSum +{ + my ($depth, $target, $coinList, $coin, $combo) = @_; + + my $diff = $target - $coin; + # say " depth=$depth, target = $target, coin = $coin, diff = $diff, list = [ @$coinList ], combo = [ @$combo ]"; + + + if ( $diff == 0 ) + { + push @ComboList, [ @$combo ]; + # say "FOUND [ @$combo ]"; + return 0; + } + + if ( $diff < 0 ) + { + pop @$combo; + # say "TOO FAR"; + return $diff; + } + + my @remainingCoin = sort { $a < $b } grep { $_ <= $diff } @$coinList; + for my $denom ( @remainingCoin ) + { + push @$combo, $denom; + _coinSum( $depth+1, $diff, \@remainingCoin, $denom, $combo ); + pop @$combo; + } + +} + +sub coinSum +{ + my ($sum, @coins) = @_; + + # Sort denominations so largest is first. + @coins = sort { $a < $b } @coins; + + while ( @coins ) + { + # say "TOP: coin = $coins[0]"; + _coinSum(1, $sum, \@coins, $coins[0], [ $coins[0] ] ); + shift @coins; + } + + return \@ComboList; +} + +1; + diff --git a/challenge-075/bob-lied/perl/lib/LargestRectangleHistogram.pm b/challenge-075/bob-lied/perl/lib/LargestRectangleHistogram.pm new file mode 100644 index 0000000000..f136a5efa1 --- /dev/null +++ b/challenge-075/bob-lied/perl/lib/LargestRectangleHistogram.pm @@ -0,0 +1,166 @@ +# vim:set ts=4 sw=4 sts=4 et ai wm=0 nu: +#============================================================================= +# LargestRectangleHistogram.pm +#============================================================================= +# Copyright (c) 2020, Bob Lied +#============================================================================= +# Description: +#============================================================================= + +package LargestRectangleHistogram; + +use strict; +use warnings; +use feature qw(say); + +use List::Util qw(max min); +use List::MoreUtils qw(arrayify); # Flattens 2D array into a list + +require Exporter; +our @ISA = qw(Exporter); +our @EXPORT = qw(); +our @EXPORT_OK = qw(); + +sub _setup +{ + my $self = shift; + + for my $row ( 0 .. $self->{_numRow} -1 ) + { + for my $col ( 0 .. $self->{_numCol}-1 ) + { + $self->{_grid}->[$row][$col] = ( $self->{_list}->[$col] > $row ? '*' : ' ' ); + $self->{_area}->[$row][$col] = 0; + } + } +} + +sub new +{ + my $class = shift; + $class = ref($class) || $class; + my $self = { + _list => [ @_ ], + _numCol => scalar(@_), + _numRow => List::Util::max( @_ ), + + _grid => undef, + _area => undef, + _extent => undef, + + }; + bless $self, $class; + + $self->_setup(); + return $self; +} + +sub _extendLeft +{ + my $self = shift; + my ($r, $col) = @_; + my $row = $self->{_grid}->[$r]; + + $col-- while ( $col >= 0 && $row->[$col] eq '*' ); + return $col+1; +} + +sub _extendRight +{ + my $self = shift; + my ($r, $col) = @_; + my $row = $self->{_grid}->[$r]; + + $col++ while ( $col < $self->{_numCol} && $row->[$col] eq '*' ); + return $col -1; +} + +sub _extend +{ + my $self = shift; + my ($row, $col) = @_; + my $ext = $self->{_extent}; + + # Memoize the range if already calculated + return @{$ext->[$row][$col]} if exists $ext->[$row][$col]; + + my $maxCol = $self->_extendRight($row, $col); + my $minCol = $self->_extendLeft($row, $col); + + $ext->[$row][$col] = [ $minCol, $maxCol ] for $minCol .. $maxCol; + return ($minCol, $maxCol); +} + +sub _findArea +{ + my $self = shift; + my ($row, $col) = @_; + my $grid = $self->{_grid}; + + my ($minCol, $maxCol) = $self->_extend($row, $col); + + my $height = List::Util::min( @{$self->{_list}}[$minCol..$maxCol] ); + + my $a = $self->{_area}->[$row][$col] = ( ( $maxCol - $minCol + 1) * $height ); + + # say "[$row][$col] : maxL=$minCol maxR=$maxCol height=$height area=$a"; + return $a; + +} +sub findLRH +{ + my $self = shift; + + my $grid = $self->{_grid}; + + for my $row ( 0 .. $self->{_numRow}-1 ) + { + for my $col ( 0 .. $self->{_numCol}-1 ) + { + next unless $grid->[$row][$col] eq '*'; + my $area = $self->_findArea($row, $col); + } + } + + return max(arrayify( @{$self->{_area}} ) ); +} + +sub _show +{ + my $self = shift; + my $g = $self->{_grid}; + my $numRow = $self->{_numRow}-1; + my $numCol = $self->{_numCol}-1; + + print " "; + for my $c ( 0 .. $numCol ) + { + print "[$c]"; + } + print "\n"; + for my $r ( 0 .. $numRow ) + { + print "[$r] "; + say " ", join(' ', @{$g->[$r]}), " "; + } + + +} + +sub display +{ + my $self = shift; + my @chart; + + for ( my $row = $self->{_numRow}-1 ; $row >= 0 ; $row-- ) + { + printf("%2d| ", $row+1); + my $line = join(' ', @{$self->{_grid}->[$row]}); + say $line; + } + say ' +', ('-' x ($self->{_numCol}*2)); + say ' ', join(' ', @{$self->{_list}}); +} + +1; + diff --git a/challenge-075/bob-lied/perl/t/CoinSum.t b/challenge-075/bob-lied/perl/t/CoinSum.t new file mode 100644 index 0000000000..2157772195 --- /dev/null +++ b/challenge-075/bob-lied/perl/t/CoinSum.t @@ -0,0 +1,24 @@ +#=============================================================================== +# +# FILE: CoinSum.t +# +# DESCRIPTION: +# +# FILES: --- +# BUGS: --- +# NOTES: --- +# AUTHOR: Bob Lied (RL), bob.lied@nokia.com +# ORGANIZATION: PNM +# VERSION: 1.0 +# CREATED: 2020-08-24 10:10:03 AM +# REVISION: --- +#=============================================================================== + +use strict; +use warnings; +use 5.010; + +use Test2::V0; + +done_testing(); + diff --git a/challenge-077/roger-bell-west/perl/ch-1.pl b/challenge-077/roger-bell-west/perl/ch-1.pl new file mode 100755 index 0000000000..14aeab908c --- /dev/null +++ b/challenge-077/roger-bell-west/perl/ch-1.pl @@ -0,0 +1,30 @@ +#! /usr/bin/perl + +use strict; +use warnings; + +use List::Util qw(sum); +use Algorithm::Combinatorics qw(combinations); + +use Test::More tests => 2; + +is_deeply(psum(6),[[1,5],[1,2,3]],"example 6"); +is_deeply(psum(9),[[1,8],[1,3,5]],"example 9"); + +sub psum { + my $n=shift; + my @p=(1,1); + while ($p[-1] < $n) { + push @p,$p[-1]+$p[-2]; + } + shift @p; + my @o; + foreach my $l (1..scalar @p) { + foreach my $comb (combinations(\@p,$l)) { + if (sum(@{$comb})==$n) { + push @o,$comb; + } + } + } + return \@o; +} diff --git a/challenge-077/roger-bell-west/perl/ch-2.pl b/challenge-077/roger-bell-west/perl/ch-2.pl new file mode 100755 index 0000000000..6a8e18fda0 --- /dev/null +++ b/challenge-077/roger-bell-west/perl/ch-2.pl @@ -0,0 +1,45 @@ +#! /usr/bin/perl + +use strict; +use warnings; + +use Test::More tests => 2; + +is_deeply(nx([[qw(O O X)],[qw(X O O)],[qw(X O O)]]),1,"example 1"); +is_deeply(nx([[qw(O O X O)],[qw(X O O O)],[qw(X O O X)],[qw(O X O O)]]),2,"example 2"); + +sub nx { + my $n=shift; + my $mr=$#{$n}; + my $mc=$#{$n->[0]}; + my $isol=0; + foreach my $r (0..$mr) { + foreach my $c (0..$mc) { + unless ($n->[$r][$c] eq 'X') { + next; + } + my $isolated=1; + foreach my $dr (-1,0,1) { + if ($r+$dr<0 || $r+$dr>$mr) { + next; + } + foreach my $dc (-1,0,1) { + if ($dc==0 && $dr==0) { + next; + } + if ($c+$dc<0 || $c+$dc>$mc) { + next; + } + if ($n->[$r+$dr][$c+$dc] eq 'X') { + $isolated=0; + last; + } + } + } + if ($isolated) { + $isol++; + } + } + } + return $isol; +} diff --git a/challenge-077/roger-bell-west/python/ch-1.py b/challenge-077/roger-bell-west/python/ch-1.py new file mode 100755 index 0000000000..14e3f9cefb --- /dev/null +++ b/challenge-077/roger-bell-west/python/ch-1.py @@ -0,0 +1,27 @@ +#! /usr/bin/python3 + +import unittest +from itertools import combinations + +def psum(n): + p=[1,1] + while (p[-1]<=n): + p.append(p[-1]+p[-2]) + del p[0] + o=list() + for l in range (1,len(p)): + for c in combinations(p,l): + if (sum(c)==n): + o.append(c) + break + return o + +class TestMajority(unittest.TestCase): + + def test_ex1(self): + self.assertEqual(psum(6),[(1, 5), (1, 2, 3)],'example 6-2') + + def test_ex2(self): + self.assertEqual(psum(9),[(1, 8), (1, 3, 5)],'example 9-2') + +unittest.main() diff --git a/challenge-077/roger-bell-west/python/ch-2.py b/challenge-077/roger-bell-west/python/ch-2.py new file mode 100755 index 0000000000..d5ad3c7cab --- /dev/null +++ b/challenge-077/roger-bell-west/python/ch-2.py @@ -0,0 +1,33 @@ +#! /usr/bin/python3 + +import unittest + +def nx(n): + mr=len(n)-1 + mc=len(n[0])-1 + isol=0 + for r in (range(0,mr+1)): + for c in (range(0,mc+1)): + if n[r][c] != 'X': + continue + isolated=1 + for dr in (-1,0,1): + if (r+dr >= 0 and r+dr <= mr): + for dc in (-1,0,1): + if ((dc != 0 or dr != 0) and c+dc >= 0 and c+dc <= mc): + if n[r+dr][c+dc] == 'X': + isolated=0 + break + if (isolated): + isol += 1 + return isol + +class TestMajority(unittest.TestCase): + + def test_ex1(self): + self.assertEqual(nx(('O O X'.split(),'X O O'.split(),'X O O'.split())),1,'example 1') + + def test_ex2(self): + self.assertEqual(nx(('O O X O'.split(),'X O O O'.split(),'X O O X'.split(),'O X O O'.split())),2,'example 2') + +unittest.main() diff --git a/challenge-077/roger-bell-west/raku/ch-1.p6 b/challenge-077/roger-bell-west/raku/ch-1.p6 new file mode 100755 index 0000000000..046d830345 --- /dev/null +++ b/challenge-077/roger-bell-west/raku/ch-1.p6 @@ -0,0 +1,18 @@ +#! /usr/bin/perl6 + +use Test; + +plan 2; + +is-deeply(psum(6),[(1,5),(1,2,3)],"example 6-2"); +is-deeply(psum(9),[(1,8),(1,3,5)],"example 9-2"); + +sub psum($n) { + my @p=(1,1); + while (@p[@p.end] < $n) { + push @p,@p[@p.end]+@p[@p.end-1]; + } + shift @p; + my @o=grep {sum(@($_))==$n}, @p.combinations(1..@p.elems); + return @o; +} diff --git a/challenge-077/roger-bell-west/raku/ch-2.p6 b/challenge-077/roger-bell-west/raku/ch-2.p6 new file mode 100755 index 0000000000..b79881b635 --- /dev/null +++ b/challenge-077/roger-bell-west/raku/ch-2.p6 @@ -0,0 +1,43 @@ +#! /usr/bin/perl6 + +use Test; + +plan 2; + +is-deeply(nx(([<O O X>],[<X O O>],[<X O O>])),1,"example 1"); +is-deeply(nx(([<O O X O>],[<X O O O>],[<X O O X>],[<O X O O>])),2,"example 2"); + +sub nx(@n) { + my $mr=@n.end; + my $mc=@n[0].end; + my $isol=0; + for 0..$mr -> $r { + for 0..$mc -> $c { + unless (@n[$r][$c] eq 'X') { + next; + } + my $isolated=1; + for (-1,0,1) -> $dr { + if ($r+$dr < 0 || $r+$dr > $mr) { + next; + } + for (-1,0,1) -> $dc { + if ($dc==0 && $dr==0) { + next; + } + if ($c+$dc < 0 || $c+$dc > $mc) { + next; + } + if (@n[$r+$dr][$c+$dc] eq 'X') { + $isolated=0; + last; + } + } + } + if ($isolated) { + $isol++; + } + } + } + return $isol; +}
\ No newline at end of file diff --git a/stats/pwc-challenge-075.json b/stats/pwc-challenge-075.json index 86dd9287ad..4e6688b474 100644 --- a/stats/pwc-challenge-075.json +++ b/stats/pwc-challenge-075.json @@ -1,7 +1,6 @@ { "series" : [ { - "colorByPoint" : 1, "data" : [ { "drilldown" : "Adam Russell", @@ -9,14 +8,14 @@ "name" : "Adam Russell" }, { - "name" : "Alex Mauney", "y" : 2, + "name" : "Alex Mauney", "drilldown" : "Alex Mauney" }, { - "drilldown" : "Alexander Pankoff", "y" : 2, - "name" : "Alexander Pankoff" + "name" : "Alexander Pankoff", + "drilldown" : "Alexander Pankoff" }, { "y" : 5, @@ -29,19 +28,24 @@ "drilldown" : "Arne Sommer" }, { - "drilldown" : "Athanasius", "y" : 4, - "name" : "Athanasius" + "name" : "Athanasius", + "drilldown" : "Athanasius" + }, + { + "drilldown" : "Bob Lied", + "name" : "Bob Lied", + "y" : 2 }, { "drilldown" : "Cheok-Yin Fung", - "y" : 4, - "name" : "Cheok-Yin Fung" + "name" : "Cheok-Yin Fung", + "y" : 4 }, { - "drilldown" : "Colin Crain", "y" : 5, - "name" : "Colin Crain" + "name" : "Colin Crain", + "drilldown" : "Colin Crain" }, { "drilldown" : "Dave Jacoby", @@ -49,14 +53,14 @@ "y" : 2 }, { + "drilldown" : "Duncan C. White", "y" : 2, - "name" : "Duncan C. White", - "drilldown" : "Duncan C. White" + "name" : "Duncan C. White" }, { - "y" : 2, + "drilldown" : "E. Choroba", "name" : "E. Choroba", - "drilldown" : "E. Choroba" + "y" : 2 }, { "y" : 2, @@ -64,39 +68,39 @@ "drilldown" : "James Smith" }, { - "y" : 2, + "drilldown" : "Jan Krnavek", "name" : "Jan Krnavek", - "drilldown" : "Jan Krnavek" + "y" : 2 }, { "drilldown" : "Jason Messer", - "name" : "Jason Messer", - "y" : 2 + "y" : 2, + "name" : "Jason Messer" }, { - "y" : 5, "name" : "Javier Luque", + "y" : 5, "drilldown" : "Javier Luque" }, { - "name" : "Jorg Sommrey", + "drilldown" : "Jorg Sommrey", "y" : 2, - "drilldown" : "Jorg Sommrey" + "name" : "Jorg Sommrey" }, { - "drilldown" : "Laurent Rosenfeld", + "y" : 5, "name" : "Laurent Rosenfeld", - "y" : 5 + "drilldown" : "Laurent Rosenfeld" }, { + "drilldown" : "Lubos Kolouch", "name" : "Lubos Kolouch", - "y" : 2, - "drilldown" : "Lubos Kolouch" + "y" : 2 }, { "drilldown" : "Luca Ferrari", - "name" : "Luca Ferrari", - "y" : 4 + "y" : 4, + "name" : "Luca Ferrari" }, { "drilldown" : "Mark Anderson", @@ -104,49 +108,49 @@ "y" : 2 }, { - "name" : "Markus Holzer", "y" : 2, + "name" : "Markus Holzer", "drilldown" : "Markus Holzer" }, { - "drilldown" : "Mohammad S Anwar", "name" : "Mohammad S Anwar", - "y" : 7 + "y" : 7, + "drilldown" : "Mohammad S Anwar" }, { - "name" : "Myoungjin Jeon", "y" : 4, + "name" : "Myoungjin Jeon", "drilldown" : "Myoungjin Jeon" }, { - "drilldown" : "Niels van Dijke", "name" : "Niels van Dijke", - "y" : 2 + "y" : 2, + "drilldown" : "Niels van Dijke" }, { - "drilldown" : "Noud Aldenhoven", + "y" : 2, "name" : "Noud Aldenhoven", - "y" : 2 + "drilldown" : "Noud Aldenhoven" }, { - "name" : "Nuno Vieira", "y" : 2, + "name" : "Nuno Vieira", "drilldown" : "Nuno Vieira" }, { - "drilldown" : "Pete Houston", "y" : 2, - "name" : "Pete Houston" + "name" : "Pete Houston", + "drilldown" : "Pete Houston" }, { - "name" : "Roger Bell_West", "y" : 5, + "name" : "Roger Bell_West", "drilldown" : "Roger Bell_West" }, { "drilldown" : "Shahed Nooshmand", - "name" : "Shahed Nooshmand", - "y" : 3 + "y" : 3, + "name" : "Shahed Nooshmand" }, { "drilldown" : "Shawn Wagner", @@ -160,28 +164,28 @@ }, { "drilldown" : "Simon Proctor", - "name" : "Simon Proctor", - "y" : 2 + "y" : 2, + "name" : "Simon Proctor" }, { "drilldown" : "Ulrich Rieke", - "name" : "Ulrich Rieke", - "y" : 2 + "y" : 2, + "name" : "Ulrich Rieke" }, { - "drilldown" : "Walt Mankowski", "name" : "Walt Mankowski", - "y" : 3 + "y" : 3, + "drilldown" : "Walt Mankowski" }, { "drilldown" : "Wanderdoc", - "y" : 2, - "name" : "Wanderdoc" + "name" : "Wanderdoc", + "y" : 2 }, { - "drilldown" : "William West", "y" : 1, - "name" : "William West" + "name" : "William West", + "drilldown" : "William West" }, { "y" : 2, @@ -189,12 +193,36 @@ "drilldown" : "Yet Ebreo" } ], + "colorByPoint" : 1, "name" : "Perl Weekly Challenge - 075" } ], + "chart" : { + "type" : "column" + }, + "xAxis" : { + "type" : "category" + }, + "title" : { + "text" : "Perl Weekly Challenge - 075" + }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + }, + "borderWidth" : 0 + } + }, + "subtitle" : { |
