diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-05-06 21:39:07 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-05-06 21:39:07 +0100 |
| commit | aeab49e5d77b0262cc7bc86186ed37b12ff939a1 (patch) | |
| tree | 5f3b9e27fed30f5c85ed19984e28289e2a47809f | |
| parent | d6e82813ca156cf814adc5ce41c0d2415a129cb7 (diff) | |
| download | perlweeklychallenge-club-aeab49e5d77b0262cc7bc86186ed37b12ff939a1.tar.gz perlweeklychallenge-club-aeab49e5d77b0262cc7bc86186ed37b12ff939a1.tar.bz2 perlweeklychallenge-club-aeab49e5d77b0262cc7bc86186ed37b12ff939a1.zip | |
- Added solutions by Pete Houston.
| -rw-r--r-- | challenge-111/pete-houston/perl/ch-1.pl | 60 | ||||
| -rw-r--r-- | challenge-111/pete-houston/perl/ch-2.pl | 61 | ||||
| -rw-r--r-- | stats/pwc-current.json | 297 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 70 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 690 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 698 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 126 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 46 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 102 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 32 | ||||
| -rw-r--r-- | stats/pwc-summary-211-240.json | 72 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 38 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 100 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 50 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 52 |
15 files changed, 1315 insertions, 1179 deletions
diff --git a/challenge-111/pete-houston/perl/ch-1.pl b/challenge-111/pete-houston/perl/ch-1.pl new file mode 100644 index 0000000000..8336a4eb03 --- /dev/null +++ b/challenge-111/pete-houston/perl/ch-1.pl @@ -0,0 +1,60 @@ +#!/usr/bin/env perl +#=============================================================================== +# +# FILE: 11101.pl +# +# USAGE: ./11101.pl [ -v ] TARGET [ INFILE ] +# +# DESCRIPTION: Is the TARGET number in the matrix, or not? +# +# OPTIONS: Specify -v for verbose output +# If INFILE is not provided, reads from STDIN +# NOTES: The reported matching row and column are 1-based +# Everything in the input file which is not an integer is +# ignored. +# AUTHOR: Pete Houston (pete), cpan@openstrike.co.uk +# ORGANIZATION: Openstrike +# VERSION: 1.0 +# CREATED: 04/05/21 +#=============================================================================== + +use strict; +use warnings; + +# Do we want verbose output (ie. say which element was matched)? +my $verbose = 0; +if ($ARGV[0] eq '-v') { + $verbose++; + shift; +} + +# Which number are we searching for? +my $target = shift; + +# Create a hashref keyed on the integers in the matrix for a very efficient +# search mechanism +my $ints = load_grid ($ARGV[0]); + +if ($ints->{$target}) { + print "1\n"; + print "Found at $ints->{$target}\n" if $verbose; +} else { + print "0\n"; +} + +sub load_grid { + my $fh = \*STDIN; + if (defined $_[0]) { + open $fh, '<', $_[0] or die "Cannot open $_[0]: $!"; + } + + my %input; + for my $r (1 .. 5) { + my @ints = (<$fh> =~ /(-?[0-9]+)/g); + for my $c (1 .. 5) { + $input{$ints[$c-1]} = "row $r, column $c"; + } + } + return \%input; +} + diff --git a/challenge-111/pete-houston/perl/ch-2.pl b/challenge-111/pete-houston/perl/ch-2.pl new file mode 100644 index 0000000000..90469c47a2 --- /dev/null +++ b/challenge-111/pete-houston/perl/ch-2.pl @@ -0,0 +1,61 @@ +#!/usr/bin/env perl +#=============================================================================== +# +# FILE: 11102.pl +# +# USAGE: ./11102.pl WORDFILE [ INENC [ OUTENC ] ] +# +# DESCRIPTION: Output the longest English alpha-sorted words +# +# OPTIONS: Dictionary defaults to /usr/share/dict/words if WORDFILE +# is not supplied. +# Input encoding defaults to us-ascii if unspecified +# Output encoding defaults to input encoding if unspecified +# REQUIREMENTS: Perl 5.16 for 'fc' +# NOTES: WORDFILE must have one word only per line. +# BUGS: The supplied words are only assumed to be English words: GIGO. +# AUTHOR: Pete Houston (pete), cpan@openstrike.co.uk +# ORGANIZATION: Openstrike +# VERSION: 1.0 +# CREATED: 04/05/21 +#=============================================================================== + +use strict; +use warnings; +use feature 'fc'; +use feature 'say'; + +my $dict = shift // '/usr/share/dict/words'; +my $enc_in = shift // 'us-ascii'; +my $enc_out = shift // $enc_in; +my $length = 0; +my @longest; + +open my $wordsfh, "<:encoding($enc_in)", $dict or + die "Dictionary $dict not accessible: $!"; + +# $length and $wlen include the EoL char(s). We only use these vars for +# comparison, so this is fine and more efficient. +while (my $word = <$wordsfh>) { + my $wlen = length $word; + next if $length > $wlen; + chomp $word; + next unless is_sorted ($word); + if ($length < $wlen) { + $length = $wlen; + @longest = ($word); + } else { + push @longest, $word; + } +} + +binmode STDOUT, ":encoding($enc_out)"; +say join "\n", @longest; + +sub is_sorted { + my @chars = split //, fc shift; + for my $i (0 .. $#chars - 1) { + return if 1 == ($chars[$i] cmp $chars[$i + 1]); + } + return 1; +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 64c97e634b..14c12e9a9d 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,126 +1,4 @@ { - "xAxis" : { - "type" : "category" - }, - "subtitle" : { - "text" : "[Champions: 16] Last updated at 2021-05-06 20:29:32 GMT" - }, - "tooltip" : { - "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>", - "followPointer" : 1, - "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "series" : [ - { - "name" : "Perl Weekly Challenge - 111", - "colorByPoint" : 1, - "data" : [ - { - "y" : 2, - "drilldown" : "Abigail", - "name" : "Abigail" - }, - { - "y" : 2, - "name" : "Cheok-Yin Fung", - "drilldown" : "Cheok-Yin Fung" - }, - { - "drilldown" : "Dave Jacoby", - "name" : "Dave Jacoby", - "y" : 3 - }, - { - "y" : 2, - "drilldown" : "E. Choroba", - "name" : "E. Choroba" - }, - { - "drilldown" : "Feng Chang", - "name" : "Feng Chang", - "y" : 2 - }, - { - "y" : 4, - "name" : "Flavio Poletti", - "drilldown" : "Flavio Poletti" - }, - { - "drilldown" : "James Smith", - "name" : "James Smith", - "y" : 3 - }, - { - "drilldown" : "Jorg Sommrey", - "name" : "Jorg Sommrey", - "y" : 2 - }, - { - "y" : 4, - "drilldown" : "Luca Ferrari", - "name" : "Luca Ferrari" - }, - { - "drilldown" : "Mark Anderson", - "name" : "Mark Anderson", - "y" : 2 - }, - { - "name" : "Niels van Dijke", - "drilldown" : "Niels van Dijke", - "y" : 2 - }, - { - "drilldown" : "Roger Bell_West", - "name" : "Roger Bell_West", - "y" : 5 - }, - { - "name" : "Simon Proctor", - "drilldown" : "Simon Proctor", - "y" : 1 - }, - { - "drilldown" : "Stuart Little", - "name" : "Stuart Little", - "y" : 4 - }, - { - "y" : 4, - "drilldown" : "Ulrich Rieke", - "name" : "Ulrich Rieke" - }, - { - "y" : 3, - "name" : "W. Luis Mochan", - "drilldown" : "W. Luis Mochan" - } - ] - } - ], - "title" : { - "text" : "Perl Weekly Challenge - 111" - }, - "chart" : { - "type" : "column" - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } - }, - "legend" : { - "enabled" : 0 - }, "drilldown" : { "series" : [ { @@ -135,13 +13,13 @@ }, { "name" : "Cheok-Yin Fung", + "id" : "Cheok-Yin Fung", "data" : [ [ "Perl", 2 ] - ], - "id" : "Cheok-Yin Fung" + ] }, { "name" : "Dave Jacoby", @@ -158,14 +36,14 @@ ] }, { + "name" : "E. Choroba", "id" : "E. Choroba", "data" : [ [ "Perl", 2 ] - ], - "name" : "E. Choroba" + ] }, { "id" : "Feng Chang", @@ -179,7 +57,6 @@ }, { "name" : "Flavio Poletti", - "id" : "Flavio Poletti", "data" : [ [ "Perl", @@ -189,7 +66,8 @@ "Blog", 2 ] - ] + ], + "id" : "Flavio Poletti" }, { "name" : "James Smith", @@ -216,6 +94,7 @@ "name" : "Jorg Sommrey" }, { + "name" : "Luca Ferrari", "data" : [ [ "Raku", @@ -226,31 +105,40 @@ 2 ] ], - "id" : "Luca Ferrari", - "name" : "Luca Ferrari" + "id" : "Luca Ferrari" }, { + "name" : "Mark Anderson", + "id" : "Mark Anderson", "data" : [ [ "Raku", 2 ] + ] + }, + { + "name" : "Niels van Dijke", + "data" : [ + [ + "Perl", + 2 + ] ], - "id" : "Mark Anderson", - "name" : "Mark Anderson" + "id" : "Niels van Dijke" }, { - "id" : "Niels van Dijke", "data" : [ [ "Perl", 2 ] ], - "name" : "Niels van Dijke" + "id" : "Pete Houston", + "name" : "Pete Houston" }, { - "name" : "Roger Bell_West", + "id" : "Roger Bell_West", "data" : [ [ "Perl", @@ -265,21 +153,19 @@ 1 ] ], - "id" : "Roger Bell_West" + "name" : "Roger Bell_West" }, { - "name" : "Simon Proctor", "id" : "Simon Proctor", "data" : [ [ "Raku", 1 ] - ] + ], + "name" : "Simon Proctor" }, { - "name" : "Stuart Little", - "id" : "Stuart Little", "data" : [ [ "Perl", @@ -289,7 +175,9 @@ "Raku", 2 ] - ] + ], + "id" : "Stuart Little", + "name" : "Stuart Little" }, { "data" : [ @@ -320,5 +208,132 @@ "name" : "W. Luis Mochan" } ] + }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + }, + "borderWidth" : 0 + } + }, + "title" : { + "text" : "Perl Weekly Challenge - 111" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "tooltip" : { + "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", + "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>", + "followPointer" : 1 + }, + "series" : [ + { + "colorByPoint" : 1, + "name" : "Perl Weekly Challenge - 111", + "data" : [ + { + "y" : 2, + "drilldown" : "Abigail", + "name" : "Abigail" + }, + { + "drilldown" : "Cheok-Yin Fung", + "name" : "Cheok-Yin Fung", + "y" : 2 + }, + { + "y" : 3, + "name" : "Dave Jacoby", + "drilldown" : "Dave Jacoby" + }, + { + "name" : "E. Choroba", + "drilldown" : "E. Choroba", + "y" : 2 + }, + { + "y" : 2, + "drilldown" : "Feng Chang", + "name" : "Feng Chang" + }, + { + "name" : "Flavio Poletti", + "drilldown" : "Flavio Poletti", + "y" : 4 + }, + { + "drilldown" : "James Smith", + "name" : "James Smith", + "y" : 3 + }, + { + "y" : 2, + "drilldown" : "Jorg Sommrey", + "name" : "Jorg Sommrey" + }, + { + "y" : 4, + "name" : "Luca Ferrari", + "drilldown" : "Luca Ferrari" + }, + { + "y" : 2, + "name" : "Mark Anderson", + "drilldown" : "Mark Anderson" + }, + { + "y" : 2, + "name" : "Niels van Dijke", + "drilldown" : "Niels van Dijke" + }, + { + "name" : "Pete Houston", + "drilldown" : "Pete Houston", + "y" : 2 + }, + { + "y" : 5, + "drilldown" : "Roger Bell_West", + "name" : "Roger Bell_West" + }, + { + "y" : 1, + "name" : "Simon Proctor", + "drilldown" : "Simon Proctor" + }, + { + "name" : "Stuart Little", + "drilldown" : "Stuart Little", + "y" : 4 + }, + { + "y" : 4, + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke" + }, + { + "name" : "W. Luis Mochan", + "drilldown" : "W. Luis Mochan", + "y" : 3 + } + ] + } + ], + "subtitle" : { + "text" : "[Champions: 17] Last updated at 2021-05-06 20:38:25 GMT" + }, + "legend" : { + "enabled" : 0 + }, + "chart" : { + "type" : "column" + }, + "xAxis" : { + "type" : "category" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 66bb25b9c0..6521db069b 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,30 +1,27 @@ { - "chart" : { - "type" : "column" + "subtitle" : { + "text" : "Last updated at 2021-05-06 20:38:24 GMT" }, "legend" : { "enabled" : "false" }, - "xAxis" : { - "type" : "category", - "labels" : { - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - } - } - }, - "subtitle" : { - "text" : "Last updated at 2021-05-06 20:29:32 GMT" - }, - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" - }, - "title" : { - "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" + "chart" : { + "type" : "column" }, "series" : [ { + "dataLabels" : { + "align" : "right", + "y" : 10, + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + }, + "format" : "{point.y:.0f}", + "rotation" : -90, + "color" : "#FFFFFF", + "enabled" : "true" + }, "name" : "Contributions", "data" : [ [ @@ -33,31 +30,34 @@ ], [ "Perl", - 5238 + 5240 ], [ "Raku", 3329 ] - ], - "dataLabels" : { - "y" : 10, - "enabled" : "true", - "format" : "{point.y:.0f}", - "align" : "right", - "rotation" : -90, - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - }, - "color" : "#FFFFFF" - } + ] } ], + "xAxis" : { + "labels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + } + }, + "type" : "category" + }, + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" + }, + "title" : { + "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" + }, "yAxis" : { - "min" : 0, "title" : { "text" : null - } + }, + "min" : 0 } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 040c182458..79678231f3 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,36 +1,48 @@ { + "xAxis" : { + "type" : "category" + }, + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2021-05-06 20:38:25 GMT" + }, + "chart" : { + "type" : "column" + }, + "legend" : { + "enabled" : "false" + }, "series" : [ { "data" : [ { "y" : 161, - "drilldown" : "001", - "name" : "#001" + "name" : "#001", + "drilldown" : "001" }, { - "y" : 125, + "name" : "#002", "drilldown" : "002", - "name" : "#002" + "y" : 125 }, { - "y" : 81, + "drilldown" : "003", "name" : "#003", - "drilldown" : "003" + "y" : 81 }, { "y" : 99, - "drilldown" : "004", - "name" : "#004" + "name" : "#004", + "drilldown" : "004" }, { - "y" : 78, "name" : "#005", - "drilldown" : "005" + "drilldown" : "005", + "y" : 78 }, { + "y" : 58, "drilldown" : "006", - "name" : "#006", - "y" : 58 + "name" : "#006" }, { "y" : 64, @@ -38,9 +50,9 @@ "name" : "#007" }, { - "y" : 78, "name" : "#008", - "drilldown" : "008" + "drilldown" : "008", + "y" : 78 }, { "y" : 76, @@ -48,23 +60,23 @@ "drilldown" : "009" }, { - "drilldown" : "010", "name" : "#010", + "drilldown" : "010", "y" : 65 }, { "y" : 85, - "name" : "#011", - "drilldown" : "011" + "drilldown" : "011", + "name" : "#011" }, { - "drilldown" : "012", "name" : "#012", + "drilldown" : "012", "y" : 89 }, { - "name" : "#013", "drilldown" : "013", + "name" : "#013", "y" : 84 }, { @@ -73,14 +85,14 @@ "y" : 101 }, { - "y" : 99, "name" : "#015", - "drilldown" : "015" + "drilldown" : "015", + "y" : 99 }, { + "y" : 70, "drilldown" : "016", - "name" : "#016", - "y" : 70 + "name" : "#016" }, { "name" : "#017", @@ -88,19 +100,19 @@ "y" : 83 }, { - "name" : "#018", + "y" : 80, "drilldown" : "018", - "y" : 80 + "name" : "#018" }, { - "drilldown" : "019", "name" : "#019", + "drilldown" : "019", "y" : 101 }, { - "y" : 99, "drilldown" : "020", - "name" : "#020" + "name" : "#020", + "y" : 99 }, { "drilldown" : "021", @@ -108,9 +120,9 @@ "y" : 71 }, { - "y" : 67, + "drilldown" : "022", "name" : "#022", - "drilldown" : "022" + "y" : 67 }, { "y" : 95, @@ -123,34 +135,34 @@ "drilldown" : "024" }, { + "y" : 59, "name" : "#025", - "drilldown" : "025", - "y" : 59 + "drilldown" : "025" }, { + "y" : 74, "name" : "#026", - "drilldown" : "026", - "y" : 74 + "drilldown" : "026" }, { - "name" : "#027", + "y" : 60, "drilldown" : "027", - "y" : 60 + "name" : "#027" }, { - "name" : "#028", "drilldown" : "028", + "name" : "#028", "y" : 80 }, { - "name" : "#029", + "y" : 79, "drilldown" : "029", - "y" : 79 + "name" : "#029" }, { + "y" : 117, "name" : "#030", - "drilldown" : "030", - "y" : 117 + "drilldown" : "030" }, { "y" : 89, @@ -158,14 +170,14 @@ "name" : "#031" }, { - "y" : 94, + "name" : "#032", "drilldown" : "032", - "name" : "#032" + "y" : 94 }, { + "y" : 110, "drilldown" : "033", - "name" : "#033", - "y" : 110 + "name" : "#033" }, { "name" : "#034", @@ -174,13 +186,13 @@ }, { "y" : 64, - "name" : "#035", - "drilldown" : "035" + "drilldown" : "035", + "name" : "#035" }, { "y" : 68, - "drilldown" : "036", - "name" : "#036" + "name" : "#036", + "drilldown" : "036" }, { "name" : "#037", @@ -189,13 +201,13 @@ }, { "y" : 67, - "name" : "#038", - "drilldown" : "038" + "drilldown" : "038", + "name" : "#038" }, { - "y" : 62, + "drilldown" : "039", "name" : "#039", - "drilldown" : "039" + "y" : 62 }, { "y" : 73, @@ -203,8 +215,8 @@ "drilldown" : "040" }, { - "drilldown" : "041", "name" : "#041", + "drilldown" : "041", "y" : 76 }, { @@ -219,8 +231,8 @@ }, { "y" : 85, - "name" : "#044", - "drilldown" : "044" + "drilldown" : "044", + "name" : "#044" }, { "drilldown" : "045", @@ -233,64 +245,64 @@ "drilldown" : "046" }, { - "name" : "#047", + "y" : 84, "drilldown" : "047", - "y" : 84 + "name" : "#047" }, { "y" : 108, - "name" : "#048", - "drilldown" : "048" + "drilldown" : "048", + "name" : "#048" }, { - "name" : "#049", "drilldown" : "049", + "name" : "#049", "y" : 89 }, { - "drilldown" : "050", + "y" : 98, "name" : "#050", - "y" : 98 + "drilldown" : "050" }, { - "y" : 89, "drilldown" : "051", - "name" : "#051" + "name" : "#051", + "y" : 89 }, { - "drilldown" : "052", + "y" : 91, "name" : "#052", - "y" : 91 + "drilldown" : "052" }, { - "y" : 101, "name" : "#053", - "drilldown" : "053" + "drilldown" : "053", + "y" : 101 }, { - "y" : 103, "drilldown" : "054", - "name" : "#054" + "name" : "#054", + "y" : 103 }, { + "y" : 88, "name" : "#055", - "drilldown" : "055", - "y" : 88 + "drilldown" : "055" }, { - "name" : "#056", + "y" : 95, "drilldown" : "056", - "y" : 95 + "name" : "#056" }, { - "name" : "#057", "drilldown" : "057", + "name" : "#057", "y" : 80 }, { - "y" : 69, + "name" : "#058", "drilldown" : "058", - "name" : "#058" + "y" : 69 }, { "name" : "#059", @@ -298,9 +310,9 @@ "y" : 89 }, { + "y" : 85, "drilldown" : "060", - "name" : "#060", - "y" : 85 + "name" : "#060" }, { "y" : 81, @@ -308,24 +320,24 @@ "drilldown" : "061" }, { + "y" : 58, "name" : "#062", - "drilldown" : "062", - "y" : 58 + "drilldown" : "062" }, { - "drilldown" : "063", "name" : "#063", + "drilldown" : "063", "y" : 89 }, { "y" : 80, - "name" : "#064", - "drilldown" : "064" + "drilldown" : "064", + "name" : "#064" }, { - "y" : 73, + "name" : "#065", "drilldown" : "065", - "name" : "#065" + "y" : 73 }, { "drilldown" : "066", @@ -338,24 +350,24 @@ "drilldown" : "067" }, { + "y" : 75, "drilldown" : "068", - "name" : "#068", - "y" : 75 + "name" : "#068" }, { + "y" : 83, "name" : "#069", - "drilldown" : "069", - "y" : 83 + "drilldown" : "069" }, |
