diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2024-04-09 16:13:25 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2024-04-09 16:13:25 +0100 |
| commit | 6dc0c187d06ace0e54b007a6bbee5617d239902e (patch) | |
| tree | 388877f77e4e306c6e287ec24d31bcde6e52b32e | |
| parent | 99848f534e866b77924f601f7c2ad77bc68d804d (diff) | |
| download | perlweeklychallenge-club-6dc0c187d06ace0e54b007a6bbee5617d239902e.tar.gz perlweeklychallenge-club-6dc0c187d06ace0e54b007a6bbee5617d239902e.tar.bz2 perlweeklychallenge-club-6dc0c187d06ace0e54b007a6bbee5617d239902e.zip | |
- Added solutions by Roger Bell_West.
- Added solutions by Laurent Rosenfeld.
- Added solutions by Reinier Maliepaard.
- Added solutions by Ulrich Rieke.
32 files changed, 2091 insertions, 1650 deletions
diff --git a/challenge-264/laurent-rosenfeld/blog.txt b/challenge-264/laurent-rosenfeld/blog.txt new file mode 100644 index 0000000000..3f3a904e5e --- /dev/null +++ b/challenge-264/laurent-rosenfeld/blog.txt @@ -0,0 +1 @@ +https://blogs.perl.org/users/laurent_r/2024/04/perl-weekly-challenge-264-greatest-english-letter.html diff --git a/challenge-264/laurent-rosenfeld/perl/ch-1.pl b/challenge-264/laurent-rosenfeld/perl/ch-1.pl new file mode 100644 index 0000000000..2a46d8a9da --- /dev/null +++ b/challenge-264/laurent-rosenfeld/perl/ch-1.pl @@ -0,0 +1,17 @@ +use strict; +use warnings; +use feature 'say'; + +sub greatest_eng_let { + my @in = split //, shift; + my %uc = map { $_ => 1 } grep { $_ le 'Z' } @in; + my @common = grep { exists $uc{$_}} + map { uc } grep {$_ gt 'Z'} @in; + return (sort @common)[-1] // "''"; +} + +my @tests = qw < PeRlwEeKLy ChaLlenge The >; +for my $test (@tests) { + printf "%-15s => ", $test; + say greatest_eng_let $test; +} diff --git a/challenge-264/laurent-rosenfeld/raku/ch-1.raku b/challenge-264/laurent-rosenfeld/raku/ch-1.raku new file mode 100644 index 0000000000..8152861b04 --- /dev/null +++ b/challenge-264/laurent-rosenfeld/raku/ch-1.raku @@ -0,0 +1,11 @@ +sub greatest-eng-let ($in) { + my $uc = (grep { / <:Lu> / }, $in.comb).Set; + my $lc = (map { .uc }, grep {/ <:Ll> /}, $in.comb).Set; + return ($uc ∩ $lc).keys.sort.tail // "''"; +} + +my @tests = < PeRlwEeKLy ChaLlenge The >; +for @tests -> $test { + printf "%-15s => ", $test; + say greatest-eng-let $test; +} diff --git a/challenge-264/reinier-maliepaard/blog.txt b/challenge-264/reinier-maliepaard/blog.txt new file mode 100644 index 0000000000..8f5d18d99e --- /dev/null +++ b/challenge-264/reinier-maliepaard/blog.txt @@ -0,0 +1 @@ +https://reiniermaliepaard.nl/perl/pwc/index.php?id=pwc264 diff --git a/challenge-264/reinier-maliepaard/perl/ch-1.pl b/challenge-264/reinier-maliepaard/perl/ch-1.pl new file mode 100644 index 0000000000..56cf1a1a6c --- /dev/null +++ b/challenge-264/reinier-maliepaard/perl/ch-1.pl @@ -0,0 +1,21 @@ +sub greatest_english_letter { + + $str_ = shift; + @matches = (); + + foreach $char ($str_ =~ /[A-Z]/g) { + push(@matches, $char) if( index($str_, lc($char)) != -1 ); + } + + @matches = sort(@matches); + ($matches[-1]) ? ( print($matches[-1] . "\n") ) : print("No match\n"); +} + +$str = 'PeRlwEeKLy'; +greatest_english_letter($str);# Output: L + +$str = 'ChaLlenge'; +greatest_english_letter($str);# Output: L + +$str = 'The'; +greatest_english_letter($str);# Output: No match diff --git a/challenge-264/reinier-maliepaard/perl/ch-2.pl b/challenge-264/reinier-maliepaard/perl/ch-2.pl new file mode 100644 index 0000000000..b689ecb15b --- /dev/null +++ b/challenge-264/reinier-maliepaard/perl/ch-2.pl @@ -0,0 +1,29 @@ +sub target_array { + + ($aref_1, $aref_2) = @_; + @source_ = @$aref_1; + @indices_ = @$aref_2; + + $target_string = ""; + $index = 0; + + foreach $i (@source_) { + substr($target_string, $indices_[$index], 0) = $i; + $index++; + } + + @target_array = split(//, $target_string); + print("@target_array\n"); +} + +@source = (0, 1, 2, 3, 4); +@indices = (0, 1, 2, 2, 1); +target_array (\@source, \@indices); # Output: (0, 4, 1, 3, 2) + +@source = (1, 2, 3, 4, 0); +@indices = (0, 1, 2, 3, 0); +target_array (\@source, \@indices); # Output: (0, 1, 2, 3, 4) + +@source = (1); +@indices = (0); +target_array (\@source, \@indices); # Output: (1) diff --git a/challenge-264/ulrich-rieke/cpp/ch-1.cpp b/challenge-264/ulrich-rieke/cpp/ch-1.cpp new file mode 100755 index 0000000000..be2454059a --- /dev/null +++ b/challenge-264/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,34 @@ +#include <iostream>
+#include <cctype>
+#include <string>
+#include <algorithm>
+#include <vector>
+
+int main( ) {
+ std::cout << "Enter a word!\n" ;
+ std::string word ;
+ std::cin >> word ;
+ std::vector<char> uppers ;
+ std::copy_if( word.begin( ) , word.end( ) , std::back_inserter(
+ uppers ) , []( char c ) {return std::isupper( c ) ; } ) ;
+ if ( uppers.size( ) > 0 ) {
+ std::vector<char> selected ;
+ for ( auto it = uppers.begin( ) ; it != uppers.end( ) ; it++ ) {
+ if ( word.find( std::tolower( *it ) ) != std::string::npos ) {
+ selected.push_back( *it ) ;
+ }
+ }
+ if ( selected.size( ) > 0 ) {
+ std::sort( selected.begin( ) , selected.end( ) , []( char a ,
+ char b ) { return a > b ; } ) ;
+ std::cout << selected[0] << '\n' ;
+ }
+ else {
+ std::cout << "''\n" ;
+ }
+ }
+ else {
+ std::cout << "''\n" ;
+ }
+ return 0 ;
+}
diff --git a/challenge-264/ulrich-rieke/cpp/ch-2.cpp b/challenge-264/ulrich-rieke/cpp/ch-2.cpp new file mode 100755 index 0000000000..2278fa69a2 --- /dev/null +++ b/challenge-264/ulrich-rieke/cpp/ch-2.cpp @@ -0,0 +1,56 @@ +#include <iostream>
+#include <list>
+#include <string>
+#include <utility>
+#include <vector>
+#include <cstdlib>
+
+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 some integers, separated by blanks!\n" ;
+ std::string line ;
+ std::getline( std::cin , line ) ;
+ std::vector<int> numbers , indices ;
+ std::vector<std::string> numberstrings { split( line , " " ) } ;
+ for ( auto s : numberstrings )
+ numbers.push_back( std::stoi( s ) ) ;
+ std::cout << "Enter some indices into the number array!\n" ;
+ std::getline( std::cin , line ) ;
+ numberstrings.clear( ) ;
+ numberstrings = split( line , " " ) ;
+ for ( auto s : numberstrings )
+ indices.push_back( std::stoi( s ) ) ;
+ std::list<int> target ;
+ std::vector<std::pair<int, int>> allPairs ;
+ //the zip equivalent of other languages! form as many pairs as
+ //dictated by the smaller of 2 containers!
+ int limit = std::min( numbers.size( ) , indices.size( ) ) ;
+ for ( int i = 0 ; i < limit ; i++ )
+ allPairs.push_back( std::make_pair( numbers[ i ] , indices[ i ] )) ;
+ for ( auto it = allPairs.begin( ) ; it != allPairs.end( ) ; it++ ) {
+ if ( target.size( ) == it->second ) {
+ target.push_back( it->first ) ;
+ }
+ else {
+ auto st = target.begin( ) ;
+ target.insert( std::next( st , it->second ) , 1 , it->first ) ;
+ }
+ }
+ std::cout << "( " ;
+ for ( int i : target )
+ std::cout << i << ' ' ;
+ std::cout << ")\n" ;
+ return 0 ;
+}
diff --git a/challenge-264/ulrich-rieke/haskell/ch-1.hs b/challenge-264/ulrich-rieke/haskell/ch-1.hs new file mode 100755 index 0000000000..98562a7c0c --- /dev/null +++ b/challenge-264/ulrich-rieke/haskell/ch-1.hs @@ -0,0 +1,16 @@ +module Challenge264
+ where
+import Data.Char ( isUpper , toLower)
+import Data.List ( sort )
+
+solution :: String -> Char
+solution str = if not $ null selected then last $ sort selected else ' '
+ where
+ selected :: [Char]
+ selected = filter (\c -> isUpper c && ( elem ( toLower c ) str )) str
+
+main :: IO ( )
+main = do
+ putStrLn "Enter a string!"
+ line <- getLine
+ print $ solution line
diff --git a/challenge-264/ulrich-rieke/haskell/ch-2.hs b/challenge-264/ulrich-rieke/haskell/ch-2.hs new file mode 100755 index 0000000000..29c1733466 --- /dev/null +++ b/challenge-264/ulrich-rieke/haskell/ch-2.hs @@ -0,0 +1,30 @@ +module Challenge264_2
+ where
+import Control.Monad.State
+
+insertAt :: Int -> Int -> [Int] -> [Int]
+insertAt pos newValue list
+ |pos == length list = list ++ [newValue]
+ |otherwise = take pos list ++ [newValue] ++ drop pos list
+
+findList :: [(Int , Int)] -> State [Int] [Int]
+findList list = do
+ currentList <- get
+ if null list then do
+ return currentList
+ else do
+ put $ insertAt ( fst $ head list ) ( snd $ head list ) currentList
+ findList ( tail list )
+
+
+main :: IO ( )
+main = do
+ putStrLn "Enter some integers, separated by blanks!"
+ numberstrings <- getLine
+ putStrLn "Enter some indices into this array!"
+ indexstrings <- getLine
+ let numbers = map read $ words numberstrings
+ indices = map read $ words indexstrings
+ allPositions = zip indices numbers
+ print $ execState ( findList allPositions ) []
+
diff --git a/challenge-264/ulrich-rieke/perl/ch-1.pl b/challenge-264/ulrich-rieke/perl/ch-1.pl new file mode 100755 index 0000000000..307cdf553c --- /dev/null +++ b/challenge-264/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,29 @@ +#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+
+say "Enter a word!" ;
+my $word = <STDIN> ;
+chomp $word ;
+my @letters = split( '' , $word ) ;
+my @uppers = grep { $_ =~ /[A-Z]/ } @letters ;
+if ( @uppers ) {
+ my @selected ;
+ for my $aChar ( @uppers ) {
+ my $lower = chr( ord( $aChar ) + 32 ) ;
+ if ( $word =~ /$lower/ ) {
+ push @selected , $aChar ;
+ }
+ }
+ if ( @selected ) {
+ my @sorted = sort @selected ;
+ say $sorted[-1] ;
+ }
+ else {
+ say "''" ;
+ }
+}
+else {
+ say "''" ;
+}
diff --git a/challenge-264/ulrich-rieke/perl/ch-2.pl b/challenge-264/ulrich-rieke/perl/ch-2.pl new file mode 100755 index 0000000000..beb139e054 --- /dev/null +++ b/challenge-264/ulrich-rieke/perl/ch-2.pl @@ -0,0 +1,27 @@ +#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+use List::Util qw ( zip ) ;
+
+say "Enter some integers, separated by blanks!" ;
+my $line = <STDIN> ;
+chomp $line ;
+my @numbers = split( /\s+/ , $line ) ;
+say "Enter some indices into the integer array!" ;
+$line = <STDIN> ;
+chomp $line ;
+my @indices = split( /\s+/ , $line ) ;
+my @pairs = zip( \@numbers , \@indices ) ;
+my @target ;
+for my $p ( @pairs ) {
+ if ( scalar( @target ) == 0 ) {
+ push( @target , $numbers[ 0 ] ) ;
+ }
+ else {
+ splice( @target , $p->[1] , 0 , $p->[0] ) ;
+ }
+}
+print "(" ;
+print join (',' , @target ) ;
+say ")" ;
diff --git a/challenge-264/ulrich-rieke/raku/ch-1.raku b/challenge-264/ulrich-rieke/raku/ch-1.raku new file mode 100755 index 0000000000..fb5ea85709 --- /dev/null +++ b/challenge-264/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,19 @@ +use v6 ;
+
+say "Enter a word!" ;
+my $word = $*IN.get ;
+my @uppers = $word.comb.grep( { $_ ~~ /<upper>/ } ) ;
+my @selected ;
+for @uppers -> $aChar {
+ my $lower = ($aChar.ord + 32).chr ;
+ if ( $word ~~ /$lower/ ) {
+ @selected.push( $aChar ) ;
+ }
+}
+if ( @selected ) {
+ my @sorted = @selected.sort ;
+ say @sorted[*-1] ;
+}
+else {
+ say "''" ;
+}
diff --git a/challenge-264/ulrich-rieke/raku/ch-2.raku b/challenge-264/ulrich-rieke/raku/ch-2.raku new file mode 100755 index 0000000000..1f6fe4242b --- /dev/null +++ b/challenge-264/ulrich-rieke/raku/ch-2.raku @@ -0,0 +1,21 @@ +use v6 ;
+
+say "Enter some integers, separated by blanks!" ;
+my $line = $*IN.get ;
+my @numbers = $line.words.map( {.Int} ) ;
+say "Enter some indices into the number array!" ;
+$line = $*IN.get ;
+my @indices = $line.words.map( {.Int} ) ;
+my @pairs = @numbers Z @indices ;
+my @target ;
+for @pairs -> $p {
+ if ( @target.elems == 0) {
+ @target.push( @numbers[ 0 ] ) ;
+ }
+ else {
+ @target.splice( $p[1] , 0 , $p[0] ) ;
+ }
+}
+print "(" ;
+@target.join( ',' ).print ;
+say ")" ;
diff --git a/challenge-264/ulrich-rieke/rust/ch-1.rs b/challenge-264/ulrich-rieke/rust/ch-1.rs new file mode 100755 index 0000000000..bed1528195 --- /dev/null +++ b/challenge-264/ulrich-rieke/rust/ch-1.rs @@ -0,0 +1,21 @@ +use std::io ; + +fn main() { + println!("Enter a word!"); + let mut inline : String = String::new( ) ; + io::stdin( ).read_line( &mut inline ).unwrap( ) ; + let entered_line : &str = &*inline ; + let mut capitals : Vec<char> = entered_line.trim( ).chars( ). + filter( | &c | { + let d = c.to_ascii_lowercase( ) ; + c.is_uppercase( ) && entered_line.contains( d ) + }).collect( ) ; + let len = capitals.len( ) ; + if len > 0 { + capitals.sort( ) ; + println!("{}" , capitals[len - 1] ) ; + } + else { + println!("''") ; + } +} diff --git a/challenge-264/ulrich-rieke/rust/ch-2.rs b/challenge-264/ulrich-rieke/rust/ch-2.rs new file mode 100755 index 0000000000..4785f16e64 --- /dev/null +++ b/challenge-264/ulrich-rieke/rust/ch-2.rs @@ -0,0 +1,28 @@ +use std::io ; + +fn main() { + println!("Enter some integers, separated by whitespace!"); + let mut inline : String = String::new( ) ; + io::stdin( ).read_line( &mut inline ).unwrap( ) ; + let entered_line : &str = &*inline ; + let numbers : Vec<i32> = entered_line.split_whitespace( ).map( | s | + s.trim( ).parse::<i32>().unwrap( ) ).collect( ) ; + println!("Enter some indices into the number array!") ; + let mut secline : String = String::new( ) ; + io::stdin( ).read_line( &mut secline ).unwrap( ) ; + let index_line : &str = &*secline ; + let indices : Vec<usize> = index_line.split_whitespace( ).map( | s | + s.trim( ).parse::<usize>( ).unwrap( )).collect( ) ; + let mut target : Vec<i32> = Vec::new( ) ; + let pairs : Vec<(&i32, &usize)> = numbers.iter( ).zip( indices.iter( ) ). + collect( ) ; + for p in pairs { + if target.len( ) == 0 { + target.push( numbers[ 0 ] ) ; + } + else { + target.insert( *p.1 , *p.0 ) ; + } + } + println!("{:?}" , target) ; +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 598b6bb0b9..7676310dc9 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,98 +1,96 @@ { - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "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/>" - }, - "title" : { - "text" : "The Weekly Challenge - 264" - }, - "legend" : { - "enabled" : 0 - }, "plotOptions" : { "series" : { - "borderWidth" : 0, "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - } + "enabled" : 1, + "format" : "{point.y}" + }, + "borderWidth" : 0 } }, "series" : [ { - "colorByPoint" : 1, "name" : "The Weekly Challenge - 264", "data" : [ { + "name" : "Bob Lied", "drilldown" : "Bob Lied", - "y" : 2, - "name" : "Bob Lied" + "y" : 2 }, { + "drilldown" : "David Ferrone", "name" : "David Ferrone", - "y" : 2, - "drilldown" : "David Ferrone" + "y" : 2 }, { "name" : "E. Choroba", - "y" : 2, - "drilldown" : "E. Choroba" + "drilldown" : "E. Choroba", + "y" : 2 }, { - "drilldown" : "Feng Chang", + "y" : 2, "name" : "Feng Chang", - "y" : 2 + "drilldown" : "Feng Chang" + }, + { + "y" : 3, + "drilldown" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld" }, { "name" : "Lubos Kolouch", - "y" : 2, - "drilldown" : "Lubos Kolouch" + "drilldown" : "Lubos Kolouch", + "y" : 2 }, { + "name" : "Luca Ferrari", "drilldown" : "Luca Ferrari", - "y" : 11, - "name" : "Luca Ferrari" + "y" : 11 }, { - "drilldown" : "Mark Anderson", "y" : 2, + "drilldown" : "Mark Anderson", "name" : "Mark Anderson" }, { "name" : "Niels van Dijke", - "y" : 2, - "drilldown" : "Niels van Dijke" + "drilldown" : "Niels van Dijke", + "y" : 2 }, { - "name" : "Peter Meszaros", "y" : 2, + "name" : "Peter Meszaros", "drilldown" : "Peter Meszaros" }, { + "name" : "Reinier Maliepaard", + "drilldown" : "Reinier Maliepaard", + "y" : 3 + }, + { "drilldown" : "Robbie Hatley", "name" : "Robbie Hatley", "y" : 3 }, { - "y" : 4, + "drilldown" : "Roger Bell_West", + "name" : "Roger Bell_West", + "y" : 4 + }, + { + "drilldown" : "Thomas Kohler", "name" : "Thomas Kohler", - "drilldown" : "Thomas Kohler" + "y" : 4 + }, + { + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke", + "y" : 4 } - ] + ], + "colorByPoint" : 1 } ], - "subtitle" : { - "text" : "[Champions: 11] Last updated at 2024-04-09 10:18:51 GMT" - }, - "xAxis" : { - "type" : "category" - }, "drilldown" : { "series" : [ { @@ -127,13 +125,31 @@ }, { "id" : "Feng Chang", + "name" : "Feng Chang", "data" : [ [ "Raku", 2 ] + ] + }, + { + "data" : [ + [ + "Perl", + 1 + ], + [ + "Raku", + 1 + ], + [ + "Blog", + 1 + ] ], - "name" : "Feng Chang" + "id" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld" }, { "id" : "Lubos Kolouch", @@ -146,6 +162,7 @@ ] }, { + "name" : "Luca Ferrari", "id" : "Luca Ferrari", "data" : [ [ @@ -156,22 +173,31 @@ "Blog", 9 ] - ], - "name" : "Luca Ferrari" + ] }, { - "name" : "Mark Anderson", "data" : [ [ "Raku", 2 ] ], - "id" : "Mark Anderson" + "id" : "Mark Anderson", + "name" : "Mark Anderson" }, { - "id" : "Niels van Dijke", + "data" : [ + [ + "Perl", + 2 + ] + ], "name" : "Niels van Dijke", + "id" : "Niels van Dijke" + }, + { + "id" : "Peter Meszaros", + "name" : "Peter Meszaros", "data" : [ [ "Perl", @@ -184,12 +210,18 @@ [ "Perl", 2 + ], + [ + "Blog", + 1 ] ], - "name" : "Peter Meszaros", - "id" : "Peter Meszaros" + "name" : "Reinier Maliepaard", + "id" : "Reinier Maliepaard" }, { + "id" : "Robbie Hatley", + "name" : "Robbie Hatley", "data" : [ [ "Perl", @@ -199,11 +231,25 @@ "Blog", 1 ] + ] + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] ], - "name" : "Robbie Hatley", - "id" : "Robbie Hatley" + "id" : "Roger Bell_West", + "name" : "Roger Bell_West" }, { + "id" : "Thomas Kohler", + "name" : "Thomas Kohler", "data" : [ [ "Perl", @@ -213,13 +259,47 @@ "Blog", 2 ] + ] + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] ], - "name" : "Thomas Kohler", - "id" : "Thomas Kohler" + "id" : "Ulrich Rieke", + "name" : "Ulrich Rieke" } ] }, + "title" : { + "text" : "The Weekly Challenge - 264" + }, "chart" : { "type" : "column" + }, + "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/>" + }, + "subtitle" : { + "text" : "[Champions: 15] Last updated at 2024-04-09 15:08:53 GMT" + }, + "legend" : { + "enabled" : 0 + }, + "xAxis" : { + "type" : "category" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 0085ddfd6a..043f0dfd2f 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,63 +1,63 @@ { - "xAxis" : { - "labels" : { - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - } - }, - "type" : "category" - }, - "chart" : { - "type" : "column" - }, - "subtitle" : { - "text" : "Last updated at 2024-04-09 10:18:51 GMT" - }, "series" : [ { "name" : "Contributions", + "dataLabels" : { + "format" : "{point.y:.0f}", + "rotation" : -90, + "y" : 10, + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + }, + "enabled" : "true", + "align" : "right", + "color" : "#FFFFFF" + }, "data" : [ [ "Blog", - 4728 + 4730 ], [ "Perl", - 13658 + 13665 ], [ "Raku", - 7921 + 7926 ] - ], - "dataLabels" : { - "color" : "#FFFFFF", - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - }, - "align" : "right", - "enabled" : "true", |
