aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2023-12-19 02:00:49 +0000
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2023-12-19 02:00:49 +0000
commit60c8fe6ec139ec65766bc30e41b50c2582ddf244 (patch)
tree4637d500e0447c9d7d2c3c0f12542c02e5f8da1b
parentf85ce97668c98085f0127ff994ac8ce40e261da4 (diff)
downloadperlweeklychallenge-club-60c8fe6ec139ec65766bc30e41b50c2582ddf244.tar.gz
perlweeklychallenge-club-60c8fe6ec139ec65766bc30e41b50c2582ddf244.tar.bz2
perlweeklychallenge-club-60c8fe6ec139ec65766bc30e41b50c2582ddf244.zip
- Added solutions by Laurent Rosenfeld.
- Added solutions by Ulrich Rieke.
-rw-r--r--challenge-248/laurent-rosenfeld/blog.txt1
-rw-r--r--challenge-248/laurent-rosenfeld/perl/ch-1.pl26
-rw-r--r--challenge-248/laurent-rosenfeld/raku/ch-1.raku22
-rwxr-xr-xchallenge-248/ulrich-rieke/cpp/ch-1.cpp52
-rwxr-xr-xchallenge-248/ulrich-rieke/cpp/ch-2.cpp59
-rwxr-xr-xchallenge-248/ulrich-rieke/haskell/ch-1.hs17
-rwxr-xr-xchallenge-248/ulrich-rieke/haskell/ch-2.hs41
-rwxr-xr-xchallenge-248/ulrich-rieke/perl/ch-1.pl34
-rwxr-xr-xchallenge-248/ulrich-rieke/perl/ch-2.pl34
-rwxr-xr-xchallenge-248/ulrich-rieke/raku/ch-1.raku28
-rwxr-xr-xchallenge-248/ulrich-rieke/raku/ch-2.raku29
-rwxr-xr-xchallenge-248/ulrich-rieke/rust/ch-1.rs31
-rwxr-xr-xchallenge-248/ulrich-rieke/rust/ch-2.rs42
-rw-r--r--stats/pwc-current.json244
-rw-r--r--stats/pwc-language-breakdown-summary.json76
-rw-r--r--stats/pwc-language-breakdown.json1652
-rw-r--r--stats/pwc-leaders.json344
-rw-r--r--stats/pwc-summary-1-30.json40
-rw-r--r--stats/pwc-summary-121-150.json52
-rw-r--r--stats/pwc-summary-151-180.json62
-rw-r--r--stats/pwc-summary-181-210.json88
-rw-r--r--stats/pwc-summary-211-240.json48
-rw-r--r--stats/pwc-summary-241-270.json54
-rw-r--r--stats/pwc-summary-271-300.json48
-rw-r--r--stats/pwc-summary-301-330.json54
-rw-r--r--stats/pwc-summary-31-60.json110
-rw-r--r--stats/pwc-summary-61-90.json56
-rw-r--r--stats/pwc-summary-91-120.json44
-rw-r--r--stats/pwc-summary.json60
29 files changed, 1953 insertions, 1495 deletions
diff --git a/challenge-248/laurent-rosenfeld/blog.txt b/challenge-248/laurent-rosenfeld/blog.txt
new file mode 100644
index 0000000000..ac370f6989
--- /dev/null
+++ b/challenge-248/laurent-rosenfeld/blog.txt
@@ -0,0 +1 @@
+https://blogs.perl.org/users/laurent_r/2023/12/perl-weekly-challenge-248-shortest-distance.html
diff --git a/challenge-248/laurent-rosenfeld/perl/ch-1.pl b/challenge-248/laurent-rosenfeld/perl/ch-1.pl
new file mode 100644
index 0000000000..3f17cfa906
--- /dev/null
+++ b/challenge-248/laurent-rosenfeld/perl/ch-1.pl
@@ -0,0 +1,26 @@
+use strict;
+use warnings;
+use feature 'say';
+
+sub shortest_distance {
+ my ($char, $str) = @_;
+ my @result;
+ my $max_idx = length($str) - 1;
+ for my $i (0..$max_idx) {
+ my $next = index ($str, $char, $i);
+ my $prev = rindex( $str, $char, $i);
+ push @result, abs($i - $next) and next if $prev < 0;
+ push @result, abs($i - $prev) and next if $next < 0;
+ my $dist = abs($i - $next) < abs($i - $prev) ?
+ abs($i - $next) : abs($i - $prev);
+ push @result, $dist;
+ }
+ return "@result";
+}
+
+my @tests = ( { str => "loveleetcode", char => "e" },
+ { str => "aaab", char => "b" } );
+for my $t (@tests) {
+ printf "%-1s - %-15s => ", $t->{"char"}, $t->{"str"};
+ say shortest_distance $t->{"char"}, $t->{"str"};
+}
diff --git a/challenge-248/laurent-rosenfeld/raku/ch-1.raku b/challenge-248/laurent-rosenfeld/raku/ch-1.raku
new file mode 100644
index 0000000000..4909cf9e3a
--- /dev/null
+++ b/challenge-248/laurent-rosenfeld/raku/ch-1.raku
@@ -0,0 +1,22 @@
+sub shortest-distance ($char, $str) {
+ my @result;
+ for 0..^$str.chars -> $i {
+ my $next = $str.index($char, $i);
+ my $prev = $str.rindex($char, $i);
+ push @result, abs($i - $next) and next
+ unless defined $prev;
+ push @result, abs($i - $prev) and next
+ unless defined $next;
+ my $dist = abs($i - $next) < abs($i - $prev) ??
+ abs($i - $next) !! abs($i - $prev);
+ push @result, $dist;
+ }
+ return "@result[]";
+}
+
+my @tests = { str => "loveleetcode", char => "e" },
+ { str => "aaab", char => "b"};
+for @tests -> %test {
+ printf "%-1s - %-15s => ", %test{"char"}, %test{"str"};
+ say shortest-distance %test{"char"}, %test{"str"};
+}
diff --git a/challenge-248/ulrich-rieke/cpp/ch-1.cpp b/challenge-248/ulrich-rieke/cpp/ch-1.cpp
new file mode 100755
index 0000000000..adda570afd
--- /dev/null
+++ b/challenge-248/ulrich-rieke/cpp/ch-1.cpp
@@ -0,0 +1,52 @@
+#include <iostream>
+#include <vector>
+#include <string>
+#include <algorithm>
+
+std::vector<std::string> split( const std::string & startline ,
+ const std::string & sep ) {
+ std::vector<std::string> separated ;
+ std::string::size_type start { 0 } ;
+ std::string::size_type pos ;
+ do {
+ pos = startline.find_first_of( sep , start ) ;
+ separated.push_back( startline.substr(start , pos - start )) ;
+ start = pos + 1 ;
+ } while ( pos != std::string::npos ) ;
+ return separated ;
+}
+
+int main( ) {
+ std::cout << "Enter a string and a letter from this string, separated by blank!\n" ;
+ std::string line ;
+ std::getline( std::cin , line ) ;
+ std::vector<std::string> parts ( split( line, " " ) ) ;
+ std::string searchstring { parts[0] } ;
+ std::string letter { parts[1] } ;
+ std::vector<int> letterpositions ;
+ for ( int i = 0 ; i < searchstring.length( ) ; i++ ) {
+ if ( searchstring.substr( i , 1 ) == letter )
+ letterpositions.push_back( i ) ;
+ }
+ for ( int n : letterpositions )
+ std ::cout << n << " " ;
+ std::cout << '\n' ;
+ std::vector<int> result ;
+ for ( int i = 0 ; i < searchstring.length( ) ; i++ ) {
+ if ( searchstring.substr( i , 1 ) != letter ) {
+ std::vector<int> differences ;
+ for ( int p = 0 ; p < letterpositions.size( ) ; p++ )
+ differences.push_back( abs( letterpositions[p] - i ) ) ;
+ result.push_back( *std::min_element( differences.begin( ) , differences.end( ) )) ;
+ }
+ else {
+ result.push_back( 0 ) ;
+ }
+ }
+ std::cout << "( " ;
+ for ( int i : result ) {
+ std::cout << i << " " ;
+ }
+ std::cout << " )\n" ;
+ return 0 ;
+}
diff --git a/challenge-248/ulrich-rieke/cpp/ch-2.cpp b/challenge-248/ulrich-rieke/cpp/ch-2.cpp
new file mode 100755
index 0000000000..a20957bbd9
--- /dev/null
+++ b/challenge-248/ulrich-rieke/cpp/ch-2.cpp
@@ -0,0 +1,59 @@
+#include <iostream>
+#include <string>
+#include <vector>
+
+std::vector<std::string> split( const std::string & startline ,
+ const std::string & sep ) {
+ std::vector<std::string> separated ;
+ std::string::size_type start { 0 } ;
+ std::string::size_type pos ;
+ do {
+ pos = startline.find_first_of( sep , start ) ;
+ separated.push_back( startline.substr(start , pos - start )) ;
+ start = pos + 1 ;
+ } while ( pos != std::string::npos ) ;
+ return separated ;
+}
+
+void print( const std::vector<int> & numbers ) {
+ std::cout << " ( " ;
+ for ( int i : numbers ) {
+ std::cout << i << " " ;
+ }
+ std::cout << ")\n" ;
+}
+
+int main( ) {
+ std::cout << "Enter a matrix by inputting an equal number of integers per line!\n" ;
+ std::cout << "Enter <return> to end!\n" ;
+ std::vector<std::vector<int>> matrix ;
+ std::string line ;
+ std::getline( std::cin , line ) ;
+ while ( line.length( ) > 0 ) {
+ std::vector<std::string> linenumbers ( split( line , " " ) ) ;
+ std::vector<int> numbers ;
+ for ( auto s : linenumbers )
+ numbers.push_back( std::stoi( s ) ) ;
+ matrix.push_back( numbers ) ;
+ std::getline( std::cin , line ) ;
+ }
+ int matrixlen = matrix.size( ) ;
+ int rowlen = matrix[0].size( ) ;
+ std::vector<std::vector<int>> result ;
+ for ( int r = 0 ; r < matrixlen - 1 ; r++ ) {
+ std::vector<int> resultline ;
+ for ( int col = 0 ; col < rowlen - 1 ; col++ ) {
+ int sum = matrix[ r ][col] + matrix[r][ col + 1 ] +
+ matrix[ r + 1][ col ] + matrix[ r + 1 ][ col + 1 ] ;
+ resultline.push_back( sum ) ;
+ }
+ result.push_back( resultline ) ;
+ }
+ std::cout << "(\n" ;
+ for ( const auto & numline : result ) {
+ print( numline ) ;
+ }
+ std::cout << ")\n" ;
+ return 0 ;
+}
+
diff --git a/challenge-248/ulrich-rieke/haskell/ch-1.hs b/challenge-248/ulrich-rieke/haskell/ch-1.hs
new file mode 100755
index 0000000000..190c1f498a
--- /dev/null
+++ b/challenge-248/ulrich-rieke/haskell/ch-1.hs
@@ -0,0 +1,17 @@
+module Challenge248
+ where
+
+solution :: String -> Char -> [Int]
+solution stri letter = map (\i -> minimum $ map (\d -> abs ( d - i ) ) positions )
+ [0..length stri - 1]
+ where
+ positions :: [Int]
+ positions = map snd $ filter ((letter == ) . fst ) $ zip stri [0, 1..]
+
+main :: IO ( )
+main = do
+ putStrLn "Please enter a string and a letter from the string, separated by a blank!"
+ input <- getLine ;
+ let searchstring = head $ words input
+ char_wanted = head $ last $ words input
+ print $ solution searchstring char_wanted
diff --git a/challenge-248/ulrich-rieke/haskell/ch-2.hs b/challenge-248/ulrich-rieke/haskell/ch-2.hs
new file mode 100755
index 0000000000..d333896311
--- /dev/null
+++ b/challenge-248/ulrich-rieke/haskell/ch-2.hs
@@ -0,0 +1,41 @@
+module Challenge248_2
+ where
+import Data.List ( intercalate , (!!) )
+import Data.List.Split ( chunksOf )
+
+getMultipleLines :: Int -> IO [String]
+getMultipleLines n
+ |n <= 0 = return []
+ |otherwise = do
+ x <- getLine
+ xs <- getMultipleLines ( n - 1 )
+ let ret = (x:xs)
+ return ret
+
+convert :: [String] -> [[Int]]
+convert list = map (\li -> map read $ words li ) list
+
+printRow :: [Int] -> String
+printRow row = " (" ++ (intercalate ", " $ map show row ) ++ ")"
+
+solution :: [[Int]] -> [[Int]]
+solution numberlist = chunksOf ( l - 1 ) [(numberlist !! r !! col) +
+ ( numberlist !! r !! (col + 1 ) ) + ( numberlist !! ( r + 1 ) !! col ) +
+ ( numberlist !! (r + 1) !! (col + 1 )) | r <- [0..length numberlist - 2] , col <- [0..l
+ - 2] ]
+ where
+ l :: Int
+ l = length ( numberlist !! 0 )
+
+main :: IO ( )
+main = do
+ putStrLn "Enter a matrix of an equal number of integers per line!"
+ putStrLn "How many lines do you want to enter?"
+ linenum <- getLine
+ numberLines <- getMultipleLines ( read linenum )
+ let matrix = convert numberLines
+ sums = solution matrix
+ putStrLn "(" ;
+ mapM_ (\subli -> putStrLn $ printRow subli ) sums
+ putStrLn ")"
+
diff --git a/challenge-248/ulrich-rieke/perl/ch-1.pl b/challenge-248/ulrich-rieke/perl/ch-1.pl
new file mode 100755
index 0000000000..ac5ce4baa4
--- /dev/null
+++ b/challenge-248/ulrich-rieke/perl/ch-1.pl
@@ -0,0 +1,34 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+use List::Util qw ( min ) ;
+
+say "Enter a string and a letter from this string , separated by a blank!" ;
+my $line = <STDIN> ;
+chomp $line ;
+my @parts = split( /\s+/ , $line ) ;
+my $string = $parts[0] ;
+my $letter = $parts[ 1 ] ;
+my @letterpositions ;
+my $pos = 0 ;
+for my $current ( split( // , $string ) ) {
+ if ( $current eq $letter ) {
+ push @letterpositions , $pos ;
+ }
+ $pos++ ;
+}
+my @result ;
+$pos = 0 ;
+for my $current ( split( // , $string )) {
+ if ( $current ne $letter ) {
+ my @distances = map { abs( $pos - $_ ) } @letterpositions ;
+ push @result , min( @distances ) ;
+ }
+ else {
+ push @result , 0 ;
+ }
+ $pos++ ;
+}
+say ( "(" . join( ',' , @result) . ")" ) ;
+
diff --git a/challenge-248/ulrich-rieke/perl/ch-2.pl b/challenge-248/ulrich-rieke/perl/ch-2.pl
new file mode 100755
index 0000000000..38cb396976
--- /dev/null
+++ b/challenge-248/ulrich-rieke/perl/ch-2.pl
@@ -0,0 +1,34 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+
+say "Enter some rows of the same number of integers each!" ;
+say "Enter <return> to end entry!" ;
+my @matrix ;
+my $line = <STDIN> ;
+chomp $line ;
+while ( $line ) {
+ my @numbers = split( /\s/ , $line ) ;
+ push @matrix , \@numbers ;
+ $line = <STDIN> ;
+ chomp $line ;
+}
+my $matrixlen = scalar( @matrix ) ;
+my $rowlen = scalar( @{$matrix[0]} ) ;
+my @result ;
+for my $r (0..$matrixlen - 2 ) {
+ my @resultline ;
+ for my $col( 0..$rowlen - 2 ) {
+ my $sum = $matrix[$r]->[$col] + $matrix[$r]->[$col + 1] +
+ $matrix[ $r + 1]->[$col] + $matrix[$r + 1]->[$col + 1] ;
+ push @resultline , $sum ;
+ }
+ push @result , \@resultline ;
+}
+say "(" ;
+for my $subarray ( @result ) {
+ say ( " (" . join( ',' , @$subarray) . ")" ) ;
+}
+say ")" ;
+
diff --git a/challenge-248/ulrich-rieke/raku/ch-1.raku b/challenge-248/ulrich-rieke/raku/ch-1.raku
new file mode 100755
index 0000000000..ab5981d2ce
--- /dev/null
+++ b/challenge-248/ulrich-rieke/raku/ch-1.raku
@@ -0,0 +1,28 @@
+use v6 ;
+
+say "Enter a string and a letter from this string, separated by a blank!" ;
+my $line = $*IN.get ;
+my @parts = $line.words ;
+my $string = @parts[ 0 ] ;
+my $letter = @parts[ 1 ] ;
+my @result ;
+my @letterpositions ;
+my $pos = 0 ;
+for $string.comb -> $current {
+ if ( $current eq $letter ) {
+ @letterpositions.push( $pos ) ;
+ }
+ $pos++ ;
+}
+$pos = 0 ;
+for $string.comb -> $current {
+ if ( $current ne $letter ) {
+ my @differences = @letterpositions.map( { abs( $_ - $pos) } ) ;
+ @result.push( @differences.min ) ;
+ }
+ else {
+ @result.push( 0 ) ;
+ }
+ $pos++ ;
+}
+say ( "(" ~ @result.join( ',' ) ~ ")" ) ;
diff --git a/challenge-248/ulrich-rieke/raku/ch-2.raku b/challenge-248/ulrich-rieke/raku/ch-2.raku
new file mode 100755
index 0000000000..f97504a009
--- /dev/null
+++ b/challenge-248/ulrich-rieke/raku/ch-2.raku
@@ -0,0 +1,29 @@
+use v6 ;
+
+say "Enter a matrix with some lines each consisting the same number of integers!" ;
+say "Enter <return> to end entry!" ;
+my $line = $*IN.get ;
+my @matrix ;
+while ( $line ) {
+ @matrix.push( $line.words.map( {.Int} )) ;
+ $line = $*IN.get ;
+}
+my $matrix_len = @matrix.elems ;
+my $row_len = @matrix[0].elems ;
+my @result ;
+for ( 0..$matrix_len - 2 ) -> $row {
+ my @resultline ;
+ for ( 0..$row_len - 2 ) -> $col {
+ my $sum = @matrix[ $row ][ $col ] + @matrix[$row][$col + 1 ] +
+ @matrix[ $row + 1 ][ $col ] + @matrix[ $row + 1 ][$col + 1] ;
+ @resultline.push( $sum ) ;
+ }
+ @result.push( @resultline ) ;
+}
+say "(" ;
+for @result -> @columns {
+ say ( " (" ~ @columns.join( ',' ) ~ ")" ) ;
+}
+say ")" ;
+
+
diff --git a/challenge-248/ulrich-rieke/rust/ch-1.rs b/challenge-248/ulrich-rieke/rust/ch-1.rs
new file mode 100755
index 0000000000..0a1305039b
--- /dev/null
+++ b/challenge-248/ulrich-rieke/rust/ch-1.rs
@@ -0,0 +1,31 @@
+use std::io ;
+
+fn main() {
+ println!("Enter a string and, separated by a blank, a letter from that string!");
+ let mut inline : String = String::new( ) ;
+ io::stdin( ).read_line( &mut inline ).unwrap( ) ;
+ let entered_line : &str = &*inline ;
+ let strings : Vec<&str> = entered_line.split_whitespace( ).map( | s |
+ s.trim( ) ).collect( ) ;
+ let searchstring : &str = strings[0] ;
+ let second_string : &str = strings[1] ;
+ let mut chars = second_string.chars( ) ;
+ let char_wanted = chars.next( ).unwrap( ) ;
+ let mut character_pos : Vec<i16> = Vec::new( ) ;
+ searchstring.chars( ).enumerate( ).filter( | el | el.1 ==
+ char_wanted ).for_each( | el | character_pos.push( el.0 as i16 ) ) ;
+ let mut result : Vec<u16> = Vec::new( ) ;
+ let mut pos : usize = 0 ;
+ for c in searchstring.chars( ) {
+ if c != char_wanted {
+ let min_distance = character_pos.iter( ).map( | n | (pos as i16).abs_diff(
+ *n as i16 )).min( ).unwrap( ) ;
+ result.push( min_distance ) ;
+ }
+ else {
+ result.push( 0u16 ) ;
+ }
+ pos += 1 ;
+ }
+ println!("{:?}" , result ) ;
+}
diff --git a/challenge-248/ulrich-rieke/rust/ch-2.rs b/challenge-248/ulrich-rieke/rust/ch-2.rs
new file mode 100755
index 0000000000..09944e6337
--- /dev/null
+++ b/challenge-248/ulrich-rieke/rust/ch-2.rs
@@ -0,0 +1,42 @@
+use std::io ;
+use std::io::BufRead ;
+
+fn main() -> io::Result<( )> {
+ println!("Please enter integers as rows of a matrix, separated by blanks!") ;
+ println!("Enter <return> to end!" ) ;
+ let mut lines = io::stdin( ).lock( ).lines( ) ;
+ let mut user_input = String::new( ) ;
+ while let Some( line ) = lines.next( ) {
+ let last_input = line.unwrap( ) ;
+ if last_input.len( ) == 0 {
+ break ;
+ }
+ else {
+ user_input.push_str("\n" ) ;
+ }
+ user_input.push_str( &last_input ) ;
+ }
+ let all_rows : Vec<&str> = user_input.split( "\n" ).collect( ) ;
+ let mut matrix : Vec<Vec<i32>> = Vec::new( ) ;
+ for a_row in &all_rows {
+ if a_row.len( ) > 0 {
+ let number_row : Vec<i32> = a_row.split_whitespace( ).map( | s |
+ s.trim( ).parse::<i32>( ).unwrap( )).collect( ) ;
+ matrix.push( number_row ) ;
+ }
+ }
+ let matrix_len : usize = matrix.len( ) ;
+ let row_len : usize = matrix[0].len( ) ;
+ let mut result : Vec<Vec<i32>> = Vec::new( ) ;
+ for r in 0..matrix_len - 1 {
+ let mut result_line : Vec<i32> = Vec::new( ) ;
+ for col in 0..row_len - 1 {
+ let sum = matrix[r][col] + matrix[r][col + 1] + matrix[r + 1][col] +
+ matrix[r + 1][col + 1] ;
+ result_line.push( sum ) ;
+ }
+ result.push( result_line ) ;
+ }
+ println!("{:?}" , result ) ;
+ Ok(())
+}
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index 5495d17f4d..761e7ad81b 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,130 +1,58 @@
{
- "xAxis" : {
- "type" : "category"
- },
- "tooltip" : {
- "followPointer" : 1,
- "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>",
- "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>"
- },
"legend" : {
"enabled" : 0
},
- "chart" : {
- "type" : "column"
- },
- "plotOptions" : {
- "series" : {
- "borderWidth" : 0,
- "dataLabels" : {
- "format" : "{point.y}",
- "enabled" : 1
- }
- }
- },
- "title" : {
- "text" : "The Weekly Challenge - 248"
- },
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
- "series" : [
- {
- "data" : [
- {
- "name" : "Bob Lied",
- "y" : 2,
- "drilldown" : "Bob Lied"
- },
- {
- "drilldown" : "David Ferrone",
- "name" : "David Ferrone",
- "y" : 2
- },
- {
- "name" : "E. Choroba",
- "y" : 2,
- "drilldown" : "E. Choroba"
- },
- {
- "drilldown" : "Luca Ferrari",
- "y" : 10,
- "name" : "Luca Ferrari"
- },
- {
- "drilldown" : "Mark Anderson",
- "name" : "Mark Anderson",
- "y" : 2
- },
- {
- "drilldown" : "Niels van Dijke",
- "name" : "Niels van Dijke",
- "y" : 2
- },
- {
- "drilldown" : "Peter Campbell Smith",
- "y" : 3,
- "name" : "Peter Campbell Smith"
- },
- {
- "drilldown" : "Peter Meszaros",
- "y" : 2,
- "name" : "Peter Meszaros"
- },
- {
- "name" : "Thomas Kohler",
- "y" : 4,
- "drilldown" : "Thomas Kohler"
- },
- {
- "y" : 3,
- "name" : "W. Luis Mochan",
- "drilldown" : "W. Luis Mochan"
- }
- ],
- "name" : "The Weekly Challenge - 248",
- "colorByPoint" : 1
- }
- ],
- "subtitle" : {
- "text" : "[Champions: 10] Last updated at 2023-12-18 20:48:20 GMT"
- },
"drilldown" : {
"series" : [
{
- "name" : "Bob Lied",
"data" : [
[
"Perl",
2
]
],
+ "name" : "Bob Lied",
"id" : "Bob Lied"
},
{
- "id" : "David Ferrone",
"name" : "David Ferrone",
"data" : [
[
"Perl",
2
]
- ]
+ ],
+ "id" : "David Ferrone"
},
{
+ "id" : "E. Choroba",
"name" : "E. Choroba",
"data" : [
[
"Perl",
2
]
+ ]
+ },
+ {
+ "id" : "Laurent Rosenfeld",
+ "data" : [
+ [
+ "Perl",
+ 1
+ ],
+ [
+ "Raku",
+ 1
+ ],
+ [
+ "Blog",
+ 1
+ ]
],
- "id" : "E. Choroba"
+ "name" : "Laurent Rosenfeld"
},
{
- "id" : "Luca Ferrari",
"name" : "Luca Ferrari",
"data" : [
[
@@ -135,29 +63,31 @@
"Blog",
8
]
- ]
+ ],
+ "id" : "Luca Ferrari"
},
{
+ "name" : "Mark Anderson",
"data" : [
[
"Raku",
2
]
],
- "name" : "Mark Anderson",
"id" : "Mark Anderson"
},
{
- "id" : "Niels van Dijke",
+ "name" : "Niels van Dijke",
"data" : [
[
"Perl",
2
]
],
- "name" : "Niels van Dijke"
+ "id" : "Niels van Dijke"
},
{
+ "name" : "Peter Campbell Smith",
"data" : [
[
"Perl",
@@ -168,18 +98,17 @@
1
]
],
- "name" : "Peter Campbell Smith",
"id" : "Peter Campbell Smith"
},
{
+ "id" : "Peter Meszaros",
"name" : "Peter Meszaros",
"data" : [
[
"Perl",
2
]
- ],
- "id" : "Peter Meszaros"
+ ]
},
{
"data" : [
@@ -196,6 +125,20 @@
"id" : "Thomas Kohler"
},
{
+ "name" : "Ulrich Rieke",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Raku",
+ 2
+ ]
+ ],
+ "id" : "Ulrich Rieke"
+ },
+ {
"id" : "W. Luis Mochan",
"data" : [
[
@@ -210,5 +153,104 @@
"name" : "W. Luis Mochan"
}
]
+ },
+ "chart" : {
+ "type" : "column"
+ },
+ "tooltip" : {
+ "followPointer" : 1,
+ "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/>"
+ },
+ "series" : [
+ {
+ "data" : [
+ {
+ "name" : "Bob Lied",
+ "drilldown" : "Bob Lied",
+ "y" : 2
+ },
+ {
+ "y" : 2,
+ "name" : "David Ferrone",
+ "drilldown" : "David Ferrone"
+ },
+ {
+ "name" : "E. Choroba",
+ "drilldown" : "E. Choroba",
+ "y" : 2
+ },
+ {
+ "y" : 3,
+ "name" : "Laurent Rosenfeld",
+ "drilldown" : "Laurent Rosenfeld"
+ },
+ {
+ "name" : "Luca Ferrari",
+ "drilldown" : "Luca Ferrari",
+ "y" : 10
+ },
+ {
+ "drilldown" : "Mark Anderson",
+ "name" : "Mark Anderson",
+ "y" : 2
+ },
+ {
+ "y" : 2,
+ "drilldown" : "Niels van Dijke",
+ "name" : "Niels van Dijke"
+ },
+ {
+ "y" : 3,
+ "name" : "Peter Campbell Smith",
+ "drilldown" : "Peter Campbell Smith"
+ },
+ {
+ "y" : 2,
+ "name" : "Peter Meszaros",
+ "drilldown" : "Peter Meszaros"
+ },
+ {
+ "name" : "Thomas Kohler",
+ "drilldown" : "Thomas Kohler",
+ "y" : 4
+ },
+ {
+ "drilldown" : "Ulrich Rieke",
+ "name" : "Ulrich Rieke",
+ "y" : 4
+ },
+ {
+ "drilldown" : "W. Luis Mochan",
+ "name" : "W. Luis Mochan",
+ "y" : 3
+ }
+ ],
+ "colorByPoint" : 1,
+ "name" : "The Weekly Challenge - 248"
+ }
+ ],
+ "xAxis" : {
+ "type" : "category"
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
+ "subtitle" : {
+ "text" : "[Champions: 12] Last updated at 2023-12-19 01:57:51 GMT"
+ },
+ "title" : {
+ "text" : "The Weekly Challenge - 248"
+ },
+ "plotOptions" : {
+ "series" : {
+ "dataLabels" : {
+ "enabled" : 1,
+ "format" : "{point.y}"
+ },
+ "borderWidth" : 0
+ }
}
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index b5be15eb70..02835640c0 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,63 +1,63 @@
{
- "xAxis" : {
- "type" : "category",
- "labels" : {
- "style" : {
- "fontSize" : "13px",
- "fontFamily" : "Verdana, sans-serif"
- }
- }
- },
- "legend" : {
- "enabled" : "false"
- },
- "tooltip" : {
- "pointFormat" : "<b>{point.y:.0f}</b>"
+ "title" : {