aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-255/ulrich-rieke/cpp/ch-1.cpp33
-rwxr-xr-xchallenge-255/ulrich-rieke/cpp/ch-2.cpp62
-rwxr-xr-xchallenge-255/ulrich-rieke/haskell/ch-1.hs21
-rwxr-xr-xchallenge-255/ulrich-rieke/haskell/ch-2.hs36
-rwxr-xr-xchallenge-255/ulrich-rieke/perl/ch-1.pl19
-rwxr-xr-xchallenge-255/ulrich-rieke/perl/ch-2.pl30
-rwxr-xr-xchallenge-255/ulrich-rieke/raku/ch-1.raku16
-rwxr-xr-xchallenge-255/ulrich-rieke/raku/ch-2.raku27
-rwxr-xr-xchallenge-255/ulrich-rieke/rust/ch-1.rs27
-rwxr-xr-xchallenge-255/ulrich-rieke/rust/ch-2.rs56
-rw-r--r--stats/pwc-current.json215
-rw-r--r--stats/pwc-language-breakdown-summary.json74
-rw-r--r--stats/pwc-language-breakdown.json3442
-rw-r--r--stats/pwc-leaders.json348
-rw-r--r--stats/pwc-summary-1-30.json114
-rw-r--r--stats/pwc-summary-121-150.json118
-rw-r--r--stats/pwc-summary-151-180.json46
-rw-r--r--stats/pwc-summary-181-210.json30
-rw-r--r--stats/pwc-summary-211-240.json116
-rw-r--r--stats/pwc-summary-241-270.json102
-rw-r--r--stats/pwc-summary-271-300.json38
-rw-r--r--stats/pwc-summary-301-330.json50
-rw-r--r--stats/pwc-summary-31-60.json34
-rw-r--r--stats/pwc-summary-61-90.json34
-rw-r--r--stats/pwc-summary-91-120.json30
-rw-r--r--stats/pwc-summary.json668
26 files changed, 3066 insertions, 2720 deletions
diff --git a/challenge-255/ulrich-rieke/cpp/ch-1.cpp b/challenge-255/ulrich-rieke/cpp/ch-1.cpp
new file mode 100755
index 0000000000..1ceec6e660
--- /dev/null
+++ b/challenge-255/ulrich-rieke/cpp/ch-1.cpp
@@ -0,0 +1,33 @@
+#include <iostream>
+#include <string>
+#include <map>
+
+int main( ) {
+ std::cout << "Enter a word!\n" ;
+ std::string firstWord ;
+ std::cin >> firstWord ;
+ std::cout << "Enter a second word, permuting the first one, plus one character!\n" ;
+ std::string secondWord ;
+ std::cin >> secondWord ;
+ std::map<char , int> firstFreq ;
+ std::map<char , int> secondFreq ;
+ for ( auto c : firstWord )
+ firstFreq[c]++ ;
+ for ( auto c : secondWord )
+ secondFreq[c]++ ;
+ for ( auto c : secondWord ) {
+ if ( firstWord.find( c ) == std::string::npos ) {
+ std::cout << c << '\n' ;
+ break ;
+ }
+ else {
+ auto it1 = firstFreq.find( c ) ;
+ auto it2 = secondFreq.find( c ) ;
+ if ( it1->second != it2->second ) {
+ std::cout << c << '\n' ;
+ break ;
+ }
+ }
+ }
+ return 0 ;
+}
diff --git a/challenge-255/ulrich-rieke/cpp/ch-2.cpp b/challenge-255/ulrich-rieke/cpp/ch-2.cpp
new file mode 100755
index 0000000000..5679e17748
--- /dev/null
+++ b/challenge-255/ulrich-rieke/cpp/ch-2.cpp
@@ -0,0 +1,62 @@
+#include <string>
+#include <iostream>
+#include <regex>
+#include <map>
+#include <utility>
+#include <vector>
+#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 paragraph of words, <return> to end!\n" ;
+ std::vector<std::string> paragraph ;
+ std::string line ;
+ std::getline( std::cin , line ) ;
+ while ( ! line.empty( ) ) {
+ paragraph.push_back( line ) ;
+ std::getline( std::cin, line ) ;
+ }
+ std::cout << "Enter a banned word!\n" ;
+ std::string banned ;
+ std::cin >> banned ;
+ std::regex pattern {R"((.+)\\W$)"} ;
+ std::map<std::string, int> frequencies ;
+ for ( auto & sentence : paragraph ) {
+ std::vector<std::string> words { split( sentence , " " ) } ;
+ for ( auto & word : words ) {
+ std::smatch matches ;
+ if (std::regex_match( word , matches , pattern ) ) {
+ frequencies[ matches[1] ]++ ;
+ }
+ else {
+ frequencies[ word ]++ ;
+ }
+ }
+ }
+ std::vector<std::pair<std::string , int>> allPairs { frequencies.begin( ) ,
+ frequencies.end( ) } ;
+ std::sort( allPairs.begin( ) , allPairs.end( ) , []( const auto & a, const
+ auto & b ) { return a.second > b.second ; } ) ;
+ if ( allPairs.begin( )->first != banned ) {
+ std::cout << allPairs.begin( )->first ;
+ }
+ else {
+ std::cout << (allPairs.begin( ) + 1)->first ;
+ }
+ std::cout << '\n' ;
+ return 0 ;
+}
+
+
diff --git a/challenge-255/ulrich-rieke/haskell/ch-1.hs b/challenge-255/ulrich-rieke/haskell/ch-1.hs
new file mode 100755
index 0000000000..568713ebc9
--- /dev/null
+++ b/challenge-255/ulrich-rieke/haskell/ch-1.hs
@@ -0,0 +1,21 @@
+module Challenge255
+ where
+import Data.List ( sort )
+
+solution :: String -> String -> Char
+solution s1 s2 = selectedC
+ where
+ selected = filter (\c -> notElem c s1 ) s2
+ selectedC = if not $ null selected then head selected else head $ filter (\c ->
+ count c s2 /= count c s1 ) s2
+ where
+ count :: Char -> String -> Int
+ count someChar aString = length $ filter ( (==someChar) ) aString
+
+main :: IO ( )
+main = do
+ putStrLn "Enter a word!"
+ firstWord <- getLine
+ putStrLn "Enter a second word , permuting the first, + 1 character!"
+ secondWord <- getLine
+ print $ solution firstWord secondWord
diff --git a/challenge-255/ulrich-rieke/haskell/ch-2.hs b/challenge-255/ulrich-rieke/haskell/ch-2.hs
new file mode 100755
index 0000000000..eab8cd6340
--- /dev/null
+++ b/challenge-255/ulrich-rieke/haskell/ch-2.hs
@@ -0,0 +1,36 @@
+module Challenge255_2
+ where
+import Data.List ( sortOn , dropWhileEnd )
+
+getMultipleLines :: Int -> IO [String]
+getMultipleLines n
+ |n <= 0 = return []
+ |otherwise = do
+ x <- getLine
+ xs <- getMultipleLines ( n - 1 )
+ let ret = (x:xs)
+ return ret
+
+count :: Eq a => a -> [a] -> Int
+count _ [] = 0
+count d (x:xs)
+ |d == x = 1 + count d xs
+ |otherwise = count d xs
+
+convert :: String -> String
+convert str = dropWhileEnd (\c -> elem c "!,.?()" ) str
+
+solution :: [String] -> String -> String
+solution words banned = fst $ last $ sortOn snd $ map (\w -> ( w, count
+ w words )) $ filter ( /= banned ) $ map convert words
+
+main :: IO ( )
+main = do
+ putStrLn "Enter some lines of text!"
+ putStrLn "How many lines do you want to enter?"
+ lineno <- getLine
+ lines <- getMultipleLines ( read lineno )
+ putStrLn "Enter a banned word!"
+ banned <- getLine
+ let allWords = concat $ map ( map convert . words ) lines
+ print $ solution allWords banned
diff --git a/challenge-255/ulrich-rieke/perl/ch-1.pl b/challenge-255/ulrich-rieke/perl/ch-1.pl
new file mode 100755
index 0000000000..dbd3f614b4
--- /dev/null
+++ b/challenge-255/ulrich-rieke/perl/ch-1.pl
@@ -0,0 +1,19 @@
+use v5.36.0 ;
+
+say "Enter a word!" ;
+my $firstWord = <STDIN> ;
+chomp $firstWord ;
+say "Enter a second word with the same characters as above + 1!" ;
+my $secondWord = <STDIN> ;
+chomp $secondWord ;
+my %firstFreq ;
+my %secondFreq ;
+for my $letter ( split ( // , $firstWord ) ) {
+ $firstFreq{ $letter }++ ;
+}
+for my $letter( split( // , $secondWord ) ) {
+ $secondFreq{ $letter }++ ;
+}
+my @selected = grep { ( not exists( $firstFreq{ $_ } ) ) || $secondFreq{ $_ } !=
+ $firstFreq{ $_ } } keys %secondFreq ;
+say $selected[ 0 ] ;
diff --git a/challenge-255/ulrich-rieke/perl/ch-2.pl b/challenge-255/ulrich-rieke/perl/ch-2.pl
new file mode 100755
index 0000000000..0760aa1146
--- /dev/null
+++ b/challenge-255/ulrich-rieke/perl/ch-2.pl
@@ -0,0 +1,30 @@
+use v5.36.0 ;
+#this includes all of use strict, use warnings, use feature 'say' !!!
+
+say "Enter a paragraph of words, <return> to end!" ;
+my @paragraph ;
+my $line = <STDIN> ;
+chomp $line ;
+while ( $line ) {
+ push @paragraph, $line ;
+ $line = <STDIN> ;
+ chomp $line ;
+}
+say "Enter a banned word!" ;
+my $banned = <STDIN> ;
+chomp $banned ;
+my %frequencies ;
+for my $sentence ( @paragraph ) {
+ my @words = split( /\s+/ , $sentence ) ;
+ for my $word ( @words ) {
+ $word =~ s/(.+)\W$/$1/ ;
+ $frequencies{ $word }++ ;
+ }
+}
+my @sorted = sort { $frequencies{ $b } <=> $frequencies{ $a } } keys %frequencies ;
+if ( $sorted[0] ne $banned ) {
+ say $sorted[0] ;
+}
+else {
+ say $sorted[1] ;
+}
diff --git a/challenge-255/ulrich-rieke/raku/ch-1.raku b/challenge-255/ulrich-rieke/raku/ch-1.raku
new file mode 100755
index 0000000000..86eb548b0a
--- /dev/null
+++ b/challenge-255/ulrich-rieke/raku/ch-1.raku
@@ -0,0 +1,16 @@
+use v6 ;
+
+say "Enter a word!" ;
+my $firstWord = $*IN.get ;
+say "Enter a second word as a permutation of the first + 1 letter!" ;
+my $secondWord = $*IN.get ;
+my %firstFreq ;
+my %secondFreq ;
+for $firstWord.comb -> $letter {
+ %firstFreq{ $letter }++ ;
+}
+for $secondWord.comb -> $letter {
+ %secondFreq{ $letter }++ ;
+}
+say %secondFreq.keys.grep( { (not %firstFreq{$_}:exists) || %secondFreq{$_} !=
+ %firstFreq{$_} } )[0] ;
diff --git a/challenge-255/ulrich-rieke/raku/ch-2.raku b/challenge-255/ulrich-rieke/raku/ch-2.raku
new file mode 100755
index 0000000000..3defecbfc5
--- /dev/null
+++ b/challenge-255/ulrich-rieke/raku/ch-2.raku
@@ -0,0 +1,27 @@
+use v6 ;
+
+say "Enter a paragraph of words, enter <return> to end!" ;
+my @paragraph ;
+my $line = $*IN.get ;
+while ( $line ) {
+ @paragraph.push( $line ) ;
+ $line = $*IN.get ;
+}
+say "Enter a banned word!" ;
+my $banned = $*IN.get ;
+my %frequencies ;
+for @paragraph -> $sentence {
+ my @words = $sentence.words ;
+ for @words <-> $word {
+ $word ~~ s/(.+)<-[a..z]>$/$0/ ;
+ %frequencies{ $word }++ ;
+ }
+}
+my @sorted = %frequencies.keys.sort( {%frequencies{$^b} <=> %frequencies{$^a} } ) ;
+if ( @sorted[0] ne $banned ) {
+ say @sorted[0] ;
+}
+else {
+ say @sorted[1] ;
+}
+
diff --git a/challenge-255/ulrich-rieke/rust/ch-1.rs b/challenge-255/ulrich-rieke/rust/ch-1.rs
new file mode 100755
index 0000000000..48b206a0d0
--- /dev/null
+++ b/challenge-255/ulrich-rieke/rust/ch-1.rs
@@ -0,0 +1,27 @@
+use std::io ;
+
+fn main() {
+ println!("Enter a first word!");
+ let mut firstline : String = String::new( ) ;
+ io::stdin( ).read_line( &mut firstline ).unwrap( ) ;
+ let entered_line : &str = &*firstline ;
+ let changed1 = entered_line.trim( ) ;
+ let mut first_letters : Vec<char> = changed1.chars( ).collect( ) ;
+ first_letters.sort( ) ;
+ println!("Enter a second word with all the same characters and an additional one!") ;
+ let mut secondline : String = String::new( ) ;
+ io::stdin( ).read_line( &mut secondline ).unwrap( ) ;
+ let sec_line : &str = &*secondline ;
+ let changed2 = sec_line.trim( ) ;
+ let mut second_letters : Vec<char> = changed2.chars( ).collect( ) ;
+ second_letters.sort( ) ;
+ let mut solution : Vec<char> = Vec::new( ) ;
+ second_letters.iter().zip( first_letters.iter( ) ).
+ filter( | ( &a, &b ) | a != b ).for_each( |( a , _ )| solution.push( *a ) ) ;
+ if solution.len( ) > 0 {
+ println!("{}" , solution[0] ) ;
+ }
+ else {
+ println!("{}" , second_letters.pop( ).unwrap( ) ) ;
+ }
+}
diff --git a/challenge-255/ulrich-rieke/rust/ch-2.rs b/challenge-255/ulrich-rieke/rust/ch-2.rs
new file mode 100755
index 0000000000..3366c84ef5
--- /dev/null
+++ b/challenge-255/ulrich-rieke/rust/ch-2.rs
@@ -0,0 +1,56 @@
+use std::io ;
+use std::io::BufRead ;
+use std::collections::HashMap ;
+
+fn main() -> io::Result<()> {
+ println!( "Enter a banned word in the paragraph!" ) ;
+ let mut inline : String = String::new( ) ;
+ io::stdin( ).read_line( &mut inline ).unwrap( ) ;
+ let entered_word : &str = &*inline ;
+ let changed = entered_word.trim( ) ;
+ println!("Enter a paragraph of text, <return> to end entry!");
+ let mut lines = io::stdin( ).lock( ).lines( ) ;
+ let mut all_input : String = String::new( ) ;
+ while let Some( line ) = lines.next( ) {
+ let last_input = line.unwrap( ) ;
+ if last_input.len( ) == 0 {
+ break ;
+ }
+ else {
+ all_input.push_str( &last_input ) ;
+ all_input.push_str( "\n" ) ;
+ }
+ }
+ let rows : Vec<&str> = all_input.split( "\n" ).collect( ) ;
+ let mut frequencies : HashMap<&str, usize> = HashMap::new( ) ;
+ for r in & rows {
+ if r.len( ) != 0 {
+ let words : Vec<&str> = r.split_whitespace( ).map( | s |
+ s.trim( ) ).collect( ) ;
+ for w in & words {
+ let wo = w.trim_end_matches( | c : char |
+ ! c.is_ascii_alphabetic( ) ) ;
+ frequencies.entry( &*wo ).and_modify ( | s | *s += 1).
+ or_insert( 1 ) ;
+ }
+ }
+ }
+ let mut all_words : Vec<(&str, usize)> = Vec::new( ) ;
+ for ( key , val ) in frequencies.iter( ) {
+ all_words.push( ( key , *val ) ) ;
+ }
+ let the_words = &mut all_words[..] ;
+ the_words.sort_by( | a , b | b.1.cmp( &a.1 ) ) ;
+ let chosen_word = the_words.first( ).unwrap( ) ;
+ if chosen_word.0 != changed {
+ println!("{:?}" , chosen_word ) ;
+ }
+ else {
+ let mut iter = the_words.iter( ).skip( 1 ) ;
+ match iter.next( ) {
+ Some ( pair ) => println!("{:?}" , pair.0 ) ,
+ None => println!("") ,
+ } ;
+ }
+ Ok(())
+}
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index 38fba30276..bc5acc15b0 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,24 +1,109 @@
{
+ "subtitle" : {
+ "text" : "[Champions: 11] Last updated at 2024-02-05 19:50:57 GMT"
+ },
+ "xAxis" : {
+ "type" : "category"
+ },
+ "title" : {
+ "text" : "The Weekly Challenge - 255"
+ },
+ "legend" : {
+ "enabled" : 0
+ },
+ "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/>"
+ },
"plotOptions" : {
"series" : {
- "borderWidth" : 0,
"dataLabels" : {
- "enabled" : 1,
- "format" : "{point.y}"
- }
+ "format" : "{point.y}",
+ "enabled" : 1
+ },
+ "borderWidth" : 0
+ }
+ },
+ "series" : [
+ {
+ "name" : "The Weekly Challenge - 255",
+ "data" : [
+ {
+ "y" : 2,
+ "name" : "David Ferrone",
+ "drilldown" : "David Ferrone"
+ },
+ {
+ "drilldown" : "Laurent Rosenfeld",
+ "name" : "Laurent Rosenfeld",
+ "y" : 3
+ },
+ {
+ "y" : 11,
+ "name" : "Luca Ferrari",
+ "drilldown" : "Luca Ferrari"
+ },
+ {
+ "y" : 2,
+ "name" : "Mark Anderson",
+ "drilldown" : "Mark Anderson"
+ },
+ {
+ "y" : 2,
+ "name" : "Matthew Neleigh",
+ "drilldown" : "Matthew Neleigh"
+ },
+ {
+ "y" : 2,
+ "drilldown" : "Peter Meszaros",
+ "name" : "Peter Meszaros"
+ },
+ {
+ "y" : 3,
+ "name" : "Robbie Hatley",
+ "drilldown" : "Robbie Hatley"
+ },
+ {
+ "drilldown" : "Simon Proctor",
+ "name" : "Simon Proctor",
+ "y" : 2
+ },
+ {
+ "y" : 4,
+ "drilldown" : "Thomas Kohler",
+ "name" : "Thomas Kohler"
+ },
+ {
+ "drilldown" : "Ulrich Rieke",
+ "name" : "Ulrich Rieke",
+ "y" : 4
+ },
+ {
+ "y" : 3,
+ "drilldown" : "W. Luis Mochan",
+ "name" : "W. Luis Mochan"
+ }
+ ],
+ "colorByPoint" : 1
+ }
+ ],
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
}
},
"drilldown" : {
"series" : [
{
- "name" : "David Ferrone",
"id" : "David Ferrone",
"data" : [
[
"Perl",
2
]
- ]
+ ],
+ "name" : "David Ferrone"
},
{
"id" : "Laurent Rosenfeld",
@@ -39,6 +124,8 @@
"name" : "Laurent Rosenfeld"
},
{
+ "id" : "Luca Ferrari",
+ "name" : "Luca Ferrari",
"data" : [
[
"Raku",
@@ -48,9 +135,7 @@
"Blog",
9
]
- ],
- "id" : "Luca Ferrari",
- "name" : "Luca Ferrari"
+ ]
},
{
"id" : "Mark Anderson",
@@ -73,14 +158,14 @@
"name" : "Matthew Neleigh"
},
{
- "id" : "Peter Meszaros",
"data" : [
[
"Perl",
2
]
],
- "name" : "Peter Meszaros"
+ "name" : "Peter Meszaros",
+ "id" : "Peter Meszaros"
},
{
"data" : [
@@ -93,18 +178,18 @@
1
]
],
- "id" : "Robbie Hatley",
- "name" : "Robbie Hatley"
+ "name" : "Robbie Hatley",
+ "id" : "Robbie Hatley"
},
{
+ "id" : "Simon Proctor",
"name" : "Simon Proctor",
"data" : [
[
"Raku",
2
]
- ],
- "id" : "Simon Proctor"
+ ]
},
{
"data" : [
@@ -117,10 +202,25 @@
2
]
],
- "id" : "Thomas Kohler",
- "name" : "Thomas Kohler"
+ "name" : "Thomas Kohler",
+ "id" : "Thomas Kohler"
+ },
+ {
+ "id" : "Ulrich Rieke",
+ "name" : "Ulrich Rieke",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Raku",
+ 2
+ ]
+ ]
},
{
+ "id" : "W. Luis Mochan",
"data" : [
[
"Perl",
@@ -131,92 +231,11 @@
1
]
],
- "id" : "W. Luis Mochan",
"name" : "W. Luis Mochan"
}
]
},
- "series" : [
- {
- "data" : [
- {
- "y" : 2,
- "drilldown" : "David Ferrone",
- "name" : "David Ferrone"
- },
- {
- "y" : 3,
- "name" : "Laurent Rosenfeld",
- "drilldown" : "Laurent Rosenfeld"
- },
- {
- "drilldown" : "Luca Ferrari",
- "name" : "Luca Ferrari",
- "y" : 11
- },
- {
- "drilldown" : "Mark Anderson",
- "name" : "Mark Anderson",
- "y" : 2
- },
- {
- "drilldown" : "Matthew Neleigh",
- "name" : "Matthew Neleigh",
- "y" : 2
- },
- {
- "y" : 2,
- "drilldown" : "Peter Meszaros",
- "name" : "Peter Meszaros"
- },
- {
- "drilldown" : "Robbie Hatley",
- "name" : "Robbie Hatley",
- "y" : 3
- },
- {
- "name" : "Simon Proctor",
- "drilldown" : "Simon Proctor",
- "y" : 2
- },
- {
- "y" : 4,
- "drilldown" : "Thomas Kohler",
- "name" : "Thomas Kohler"
- },
- {
- "name" : "W. Luis Mochan",
- "drilldown" : "W. Luis Mochan",
- "y" : 3
- }
- ],
- "colorByPoint" : 1,
- "name" : "The Weekly Challenge - 255"
- }
- ],
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
- "legend" : {
- "enabled" : 0
- },
"chart" : {
"type" : "column"
- },
- "subtitle" : {
- "text" : "[Champions: 10] Last updated at 2024-02-05 19:20:52 GMT"
- },
- "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/>"
- },
- "xAxis" : {
- "type" : "category"
- },
- "title" : {
- "text" : "The Weekly Challenge - 255"
}
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index e95b696031..1c7a5ef5b4 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,30 +1,36 @@
{
- "chart" : {
- "type" : "column"
+ "subtitle" : {
+ "text" : "Last updated at 2024-02-05 19:50:57 GMT"
+ },
+ "xAxis" : {
+ "labels" : {
+ "style" : {
+ "fontSize" : "13px",
+ "fontFamily" : "Verdana, sans-serif"
+ }
+ },
+ "type" : "category"
+ },
+ "title" : {
+ "text" : "The Weekly Challenge Contributions [2019 - 2024]"
},
"legend" : {
"enabled" : "false"
},
+ "tooltip" : {
+ "pointFormat" : "<b>{point.y:.0f}</b>"
+ },
+ "chart" : {
+ "type" : "column"
+ },
"yAxis" : {
- "min" : 0,
"title" : {
"text" : null
- }
+ },
+ "min" : 0
},
"series" : [
{
- "dataLabels" : {
- "enabled" : "true",
- "y" : 10,
- "format" : "{point.y:.0f}",
- "style" : {
- "fontFamily" : "Verdana, sans-serif",
- "fontSize" : "13px"
- },
- "rotation" : -90,
- "color" : "#FFFFFF",
- "align" : "right"
- },
"data" : [
[
"Blog",
@@ -32,32 +38,26 @@
],
[
"Perl",
- 13142
+ 13144
],
[
"Raku",
- 7588
+ 7590
]
],
+ "dataLabels" : {
+ "color" : "#FFFFFF",
+ "rotation" : -90,
+ "enabled" : "true",
+ "y" : 10,
+ "format" : "{point.y:.0f}",
+ "style" : {
+ "fontFamily" : "Verdana, sans-serif",
+ "fontSize" : "13px"
+ },
+ "align" : "right"
+ },
"name" : "Contributions"
}
- ],
- "title" : {
- "text" : "The Weekly Challenge Contributions [2019 - 2024]"
- },
- "tooltip" : {
- "pointFormat" : "<b>{point.y:.0f}</b>"
- },
- "xAxis" : {
- "type" : "category",
- "labels" : {
- "style" : {
- "fontFamily" : "Verdana, sans-serif",
- "fontSize" : "13px"
- }
- }
- },
- "subtitle" : {
- "text" : "Last updated at 2024-02-05 19:20:52 GMT"
- }
+ ]
}
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index bb1ee23416..de852e799a 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,43 +1,1316 @@
{
- "subtitle" : {
- "text" : "Click the columns to drilldown the language breakdown. Last updated at 2024-02-05 19:20:52 GMT"
+ "title" : {
+ "text" : "The Weekly Challenge Language"
},
"xAxis" : {
"type" : "category"
},
+ "legend" : {
+ "enabled" : "false"
+ },
+ "subtitle" : {
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2024-02-05 19:50:57 GMT"
+ },
"tooltip" : {
- "followPointer" : "true",
"pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>",
+ "followPointer" : "true",
"headerFormat" : "<span style=\"font-size:11px\"></span>"
},
- "title" : {
- "text" : "The Weekly Challenge Language"
- },
+ "series" : [
+ {
+ "name" : "The Weekly Challenge Languages",
+ "data" : [
+ {
+ "name" : "#001",
+ "drilldown" : "001",
+ "y" : 164
+ },
+ {
+ "y" : 129,
+ "drilldown" : "002",
+ "name" : "#002"
+ },
+ {
+ "y" : 87,
+ "name" : "#003",
+ "drilldown" : "003"
+ },
+ {
+ "name" : "#004",
+ "drilldown" : "004",
+ "y" : 103
+ },
+ {
+ "y" : 80,
+ "name" : "#005",
+ "drilldown" : "005"
+ },
+ {
+ "name" : "#006",
+ "drilldown" : "006",
+ "y" : 61
+ },
+ {
+ "name" : "#007",
+ "drilldown" : "007",
+ "y" : 69
+ },
+ {
+ "name" : "#008",
+ "drilldown" : "008",
+ "y" : 82
+ },
+ {
+ "y" : 80,
+ "name" : "#009",
+ "drilldown" : "009"
+ },
+ {
+ "y" : 69,
+ "drilldown" : "010",
+ "name" : "#010"
+ },
+ {
+ "y" : 89,
+ "name" : "#011",
+ "drilldown" : "011"
+ },
+ {
+ "y" : 92,
+ "name" : "#012",
+ "drilldown" : "012"
+ },
+ {
+ "y" : 87,
+ "name" : "#013",
+ "drilldown" : "013"
+ },
+ {
+ "y" : 102,
+ "drilldown" : "014",
+ "name" : "#014"
+ },
+ {
+ "y" : 101,
+ "drilldown" : "015",
+ "name" : "#015"
+ },
+ {
+ "y" : 75,
+ "name" : "#016",
+ "drilldown" : "016"
+ },
+ {
+ "name" : "#017",
+ "drilldown" : "017",
+ "y" : 86
+ },
+ {
+ "y" : 83,
+ "drilldown" : "018",
+ "name" : "#018"
+ },
+ {
+ "y" : 105,
+ "drilldown" : "019",
+ "name" : "#019"
+ },
+ {
+ "name" : "#020",
+ "drilldown" : "020",
+ "y" : 103
+ },
+ {
+ "y" : 74,
+ "drilldown" : "021",
+ "name" : "#021"
+ },
+ {
+ "name" : "#022",
+ "drilldown" : "022",
+ "y" : 72
+ },
+ {
+ "name" : "#023",
+ "drilldown" : "023",
+ "y" : 101
+ },
+ {
+ "drilldown" : "024",
+ "name" : "#024",