From c5ca130343e62834e6079e43b5cb9588ce0243b1 Mon Sep 17 00:00:00 2001 From: Mohammad Sajid Anwar Date: Tue, 22 Jul 2025 00:44:04 +0100 Subject: - Added solutions by Eric Cheung. - Added solutions by Ulrich Rieke. - Added solutions by Lukas Mai. - Added solutions by Andrew Shitov. - Added solutions by Feng Chang. - Added solutions by Alexander Karelas. - Added solutions by Simon Proctor. - Added solutions by E. Choroba. - Added solutions by Andreas Mahnke. - Added solutions by Kjetil Skotheim. - Added solutions by PokGoPun. - Added solutions by W. Luis Mochan. - Added solutions by Mark Anderson. - Added solutions by David Ferrone. - Added solutions by Peter Meszaros. - Added solutions by Thomas Kohler. - Added solutions by Peter Campbell Smith. --- challenge-330/perlboy1967/perl/ch-1.pl | 32 ++ challenge-330/perlboy1967/perl/ch-2.pl | 30 ++ challenge-330/perlboy1967/perl/ch1.pl | 32 -- challenge-330/perlboy1967/perl/ch2.pl | 30 -- challenge-331/eric-cheung/python/ch-1.py | 12 + challenge-331/eric-cheung/python/ch-2.py | 32 ++ challenge-331/perlboy1967/perl/ch-1.pl | 30 ++ challenge-331/perlboy1967/perl/ch-2.pl | 52 +++ challenge-331/perlboy1967/perl/ch1.pl | 30 -- challenge-331/perlboy1967/perl/ch2.pl | 52 --- challenge-331/ulrich-rieke/cpp/ch-1.cpp | 28 ++ challenge-331/ulrich-rieke/cpp/ch-2.cpp | 60 +++ challenge-331/ulrich-rieke/haskell/ch-1.hs | 15 + challenge-331/ulrich-rieke/haskell/ch-2.hs | 27 ++ challenge-331/ulrich-rieke/perl/ch-1.pl | 12 + challenge-331/ulrich-rieke/perl/ch-2.pl | 49 +++ challenge-331/ulrich-rieke/raku/ch-1.raku | 5 + challenge-331/ulrich-rieke/raku/ch-2.raku | 34 ++ challenge-331/ulrich-rieke/rust/ch-1.rs | 15 + challenge-331/ulrich-rieke/rust/ch-2.rs | 54 +++ stats/pwc-challenge-330.json | 668 +++++++++++++++++++++++++++++ stats/pwc-current.json | 371 +--------------- stats/pwc-language-breakdown-2019.json | 2 +- stats/pwc-language-breakdown-2020.json | 2 +- stats/pwc-language-breakdown-2021.json | 2 +- stats/pwc-language-breakdown-2022.json | 2 +- stats/pwc-language-breakdown-2023.json | 2 +- stats/pwc-language-breakdown-2024.json | 2 +- stats/pwc-language-breakdown-2025.json | 29 +- stats/pwc-language-breakdown-summary.json | 8 +- stats/pwc-leaders.json | 58 +-- stats/pwc-summary-1-30.json | 8 +- stats/pwc-summary-121-150.json | 2 +- stats/pwc-summary-151-180.json | 6 +- stats/pwc-summary-181-210.json | 6 +- stats/pwc-summary-211-240.json | 8 +- stats/pwc-summary-241-270.json | 2 +- stats/pwc-summary-271-300.json | 8 +- stats/pwc-summary-301-330.json | 10 +- stats/pwc-summary-31-60.json | 2 +- stats/pwc-summary-61-90.json | 8 +- stats/pwc-summary-91-120.json | 2 +- stats/pwc-summary.json | 44 +- stats/pwc-yearly-language-summary.json | 10 +- 44 files changed, 1289 insertions(+), 604 deletions(-) create mode 100755 challenge-330/perlboy1967/perl/ch-1.pl create mode 100755 challenge-330/perlboy1967/perl/ch-2.pl delete mode 100755 challenge-330/perlboy1967/perl/ch1.pl delete mode 100755 challenge-330/perlboy1967/perl/ch2.pl create mode 100755 challenge-331/eric-cheung/python/ch-1.py create mode 100755 challenge-331/eric-cheung/python/ch-2.py create mode 100755 challenge-331/perlboy1967/perl/ch-1.pl create mode 100755 challenge-331/perlboy1967/perl/ch-2.pl delete mode 100755 challenge-331/perlboy1967/perl/ch1.pl delete mode 100755 challenge-331/perlboy1967/perl/ch2.pl create mode 100755 challenge-331/ulrich-rieke/cpp/ch-1.cpp create mode 100755 challenge-331/ulrich-rieke/cpp/ch-2.cpp create mode 100755 challenge-331/ulrich-rieke/haskell/ch-1.hs create mode 100755 challenge-331/ulrich-rieke/haskell/ch-2.hs create mode 100755 challenge-331/ulrich-rieke/perl/ch-1.pl create mode 100755 challenge-331/ulrich-rieke/perl/ch-2.pl create mode 100755 challenge-331/ulrich-rieke/raku/ch-1.raku create mode 100755 challenge-331/ulrich-rieke/raku/ch-2.raku create mode 100755 challenge-331/ulrich-rieke/rust/ch-1.rs create mode 100755 challenge-331/ulrich-rieke/rust/ch-2.rs create mode 100644 stats/pwc-challenge-330.json diff --git a/challenge-330/perlboy1967/perl/ch-1.pl b/challenge-330/perlboy1967/perl/ch-1.pl new file mode 100755 index 0000000000..6c36119f96 --- /dev/null +++ b/challenge-330/perlboy1967/perl/ch-1.pl @@ -0,0 +1,32 @@ +#!/bin/perl + +=pod + +L + +Author: Niels 'PerlBoy' van Dijke + +Task 1: Clear Digits +Submitted by: Mohammad Sajid Anwar + +You are given a string containing only lower case English letters and digits. + +Write a script to remove all digits by removing the first digit and the closest +non-digit character to its left. + +=cut + +use Test2::V0 qw(-no_srand); +use exact 'v5.32', -signatures; + +sub clearDigits ($str) { + 1 while ($str =~ s#[a-z][0-9]##); + return $str; +} + +is(clearDigits('cab12'),'c','Example 1'); +is(clearDigits('xy99'),'','Example 2'); +is(clearDigits('pa1erl'),'perl','Example 3'); +is(clearDigits('1a2b3c'),'1c','Own Example'); + +done_testing; diff --git a/challenge-330/perlboy1967/perl/ch-2.pl b/challenge-330/perlboy1967/perl/ch-2.pl new file mode 100755 index 0000000000..f5393b611c --- /dev/null +++ b/challenge-330/perlboy1967/perl/ch-2.pl @@ -0,0 +1,30 @@ +#!/bin/perl + +=pod + +L + +Author: Niels 'PerlBoy' van Dijke + +Task 2: Title Capital +Submitted by: Mohammad Sajid Anwar + +You are given a string made up of one or more words separated by a single space. + +Write a script to capitalise the given title. If the word length is 1 or 2 then convert +the word to lowercase otherwise make the first character uppercase and remaining lowercase. + +=cut + +use Test2::V0 qw(-no_srand); +use exact 'v5.32', -signatures; + +sub titleCapital ($str) { + join ' ',map { length($_) <= 2 ? $_ : ucfirst } split /\s+/,lc $str; +} + +is(titleCapital('PERL IS gREAT'),'Perl is Great','Example 1'); +is(titleCapital('THE weekly challenge'),'The Weekly Challenge','Example 2'); +is(titleCapital('YoU ARE A stAR'),'You Are a Star','Example 3'); + +done_testing; diff --git a/challenge-330/perlboy1967/perl/ch1.pl b/challenge-330/perlboy1967/perl/ch1.pl deleted file mode 100755 index 6c36119f96..0000000000 --- a/challenge-330/perlboy1967/perl/ch1.pl +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/perl - -=pod - -L - -Author: Niels 'PerlBoy' van Dijke - -Task 1: Clear Digits -Submitted by: Mohammad Sajid Anwar - -You are given a string containing only lower case English letters and digits. - -Write a script to remove all digits by removing the first digit and the closest -non-digit character to its left. - -=cut - -use Test2::V0 qw(-no_srand); -use exact 'v5.32', -signatures; - -sub clearDigits ($str) { - 1 while ($str =~ s#[a-z][0-9]##); - return $str; -} - -is(clearDigits('cab12'),'c','Example 1'); -is(clearDigits('xy99'),'','Example 2'); -is(clearDigits('pa1erl'),'perl','Example 3'); -is(clearDigits('1a2b3c'),'1c','Own Example'); - -done_testing; diff --git a/challenge-330/perlboy1967/perl/ch2.pl b/challenge-330/perlboy1967/perl/ch2.pl deleted file mode 100755 index f5393b611c..0000000000 --- a/challenge-330/perlboy1967/perl/ch2.pl +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/perl - -=pod - -L - -Author: Niels 'PerlBoy' van Dijke - -Task 2: Title Capital -Submitted by: Mohammad Sajid Anwar - -You are given a string made up of one or more words separated by a single space. - -Write a script to capitalise the given title. If the word length is 1 or 2 then convert -the word to lowercase otherwise make the first character uppercase and remaining lowercase. - -=cut - -use Test2::V0 qw(-no_srand); -use exact 'v5.32', -signatures; - -sub titleCapital ($str) { - join ' ',map { length($_) <= 2 ? $_ : ucfirst } split /\s+/,lc $str; -} - -is(titleCapital('PERL IS gREAT'),'Perl is Great','Example 1'); -is(titleCapital('THE weekly challenge'),'The Weekly Challenge','Example 2'); -is(titleCapital('YoU ARE A stAR'),'You Are a Star','Example 3'); - -done_testing; diff --git a/challenge-331/eric-cheung/python/ch-1.py b/challenge-331/eric-cheung/python/ch-1.py new file mode 100755 index 0000000000..a7d0dcd351 --- /dev/null +++ b/challenge-331/eric-cheung/python/ch-1.py @@ -0,0 +1,12 @@ + +import re + +## strInput = "The Weekly Challenge" ## Example 1 +## strInput = " Hello World " ## Example 2 +strInput = "Let's begin the fun" ## Example 3 + +strOutput = re.sub(r"\s+", " ", strInput).strip() + +arrOutput = [strLoop for strLoop in strOutput.split(" ") if strLoop] + +print (len(arrOutput[-1])) diff --git a/challenge-331/eric-cheung/python/ch-2.py b/challenge-331/eric-cheung/python/ch-2.py new file mode 100755 index 0000000000..3b21723f44 --- /dev/null +++ b/challenge-331/eric-cheung/python/ch-2.py @@ -0,0 +1,32 @@ + +def IsBuddyStr (strSource, strTarget): + arrSource = list(strSource) + + for nRow in range(0, len(arrSource) - 1): + for nCol in range(nRow + 1, len(arrSource)): + arrTemp = arrSource[:] + arrTemp[nRow] = arrSource[nCol] + arrTemp[nCol] = arrSource[nRow] + strSwap = "".join(arrTemp) + if strSwap == strTarget: + return True + + return False + +## Example 1 +## strInputSource = "fuck" +## strInputTarget = "fcuk" + +## Example 2 +## strInputSource = "love" +## strInputTarget = "love" + +## Example 3 +## strInputSource = "fodo" +## strInputTarget = "food" + +## Example 4 +strInputSource = "feed" +strInputTarget = "feed" + +print (IsBuddyStr(strInputSource, strInputTarget)) diff --git a/challenge-331/perlboy1967/perl/ch-1.pl b/challenge-331/perlboy1967/perl/ch-1.pl new file mode 100755 index 0000000000..7d4786e960 --- /dev/null +++ b/challenge-331/perlboy1967/perl/ch-1.pl @@ -0,0 +1,30 @@ +#!/bin/perl + +=pod + +L + +Author: Niels 'PerlBoy' van Dijke + +Task 1: Last Word +Submitted by: Mohammad Sajid Anwar + +You are given a string. + +Write a script to find the length of last word in the given string. + +=cut + +use Test2::V0 qw(-no_srand); +use exact 'v5.32', -signatures; + +sub lastWord ($str) { + length(($str =~ m#(\S+)\b[\W]*$#)[0]); +} + +is(lastWord(q{The Weekly Challenge}),9,'Example 1'); +is(lastWord(q{ Hello World }),5,'Example 2'); +is(lastWord(q{Let's begin the fun}),3,'Example 3'); +is(lastWord(q{Hello TWC!}),3,'Own example'); + +done_testing; diff --git a/challenge-331/perlboy1967/perl/ch-2.pl b/challenge-331/perlboy1967/perl/ch-2.pl new file mode 100755 index 0000000000..2f2a6c578f --- /dev/null +++ b/challenge-331/perlboy1967/perl/ch-2.pl @@ -0,0 +1,52 @@ +#!/bin/perl + +=pod + +L + +Author: Niels 'PerlBoy' van Dijke + +Task 2: Buddy Strings +Submitted by: Mohammad Sajid Anwar + +You are given two strings, source and target. + +Write a script to find out if the given strings are Buddy Strings. + +|| If swapping of a letter in one string make them same as the other then +|| they are `Buddy Strings`. + +=cut + +use Test2::V0 qw(-no_srand); +use exact 'v5.32', -signatures; + +use boolean; +use List::MoreUtils qw(pairwise uniq); + + +sub areBuddyStrings ($str1,$str2) { + # The strings must have equal length + return false if (length($str1) != length($str2)); + + # If the strings are identical at least one character + # must be non uniq + my @s1 = split //, $str1; + return true if ($str1 eq $str2 and @s1 > uniq(@s1)); + + my @s2 = split //, $str2; + + # Need to have same characters across + return false if (join('',sort @s1) ne join('',sort @s2)); + + # There may be only two characters different position wise + boolean((grep { $_ != 0 } pairwise { $a cmp $b } @s1,@s2) == 2); +} + +is(areBuddyStrings('fuck','fcuk'),true,'Example 1'); +is(areBuddyStrings('love','love'),false,'Example 2'); +is(areBuddyStrings('fodo','food'),true,'Example 3'); +is(areBuddyStrings('feed','feed'),true,'Example 4'); +is(areBuddyStrings('PerL','perl'),false,'Own example'); + +done_testing; diff --git a/challenge-331/perlboy1967/perl/ch1.pl b/challenge-331/perlboy1967/perl/ch1.pl deleted file mode 100755 index 7d4786e960..0000000000 --- a/challenge-331/perlboy1967/perl/ch1.pl +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/perl - -=pod - -L - -Author: Niels 'PerlBoy' van Dijke - -Task 1: Last Word -Submitted by: Mohammad Sajid Anwar - -You are given a string. - -Write a script to find the length of last word in the given string. - -=cut - -use Test2::V0 qw(-no_srand); -use exact 'v5.32', -signatures; - -sub lastWord ($str) { - length(($str =~ m#(\S+)\b[\W]*$#)[0]); -} - -is(lastWord(q{The Weekly Challenge}),9,'Example 1'); -is(lastWord(q{ Hello World }),5,'Example 2'); -is(lastWord(q{Let's begin the fun}),3,'Example 3'); -is(lastWord(q{Hello TWC!}),3,'Own example'); - -done_testing; diff --git a/challenge-331/perlboy1967/perl/ch2.pl b/challenge-331/perlboy1967/perl/ch2.pl deleted file mode 100755 index 2f2a6c578f..0000000000 --- a/challenge-331/perlboy1967/perl/ch2.pl +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/perl - -=pod - -L - -Author: Niels 'PerlBoy' van Dijke - -Task 2: Buddy Strings -Submitted by: Mohammad Sajid Anwar - -You are given two strings, source and target. - -Write a script to find out if the given strings are Buddy Strings. - -|| If swapping of a letter in one string make them same as the other then -|| they are `Buddy Strings`. - -=cut - -use Test2::V0 qw(-no_srand); -use exact 'v5.32', -signatures; - -use boolean; -use List::MoreUtils qw(pairwise uniq); - - -sub areBuddyStrings ($str1,$str2) { - # The strings must have equal length - return false if (length($str1) != length($str2)); - - # If the strings are identical at least one character - # must be non uniq - my @s1 = split //, $str1; - return true if ($str1 eq $str2 and @s1 > uniq(@s1)); - - my @s2 = split //, $str2; - - # Need to have same characters across - return false if (join('',sort @s1) ne join('',sort @s2)); - - # There may be only two characters different position wise - boolean((grep { $_ != 0 } pairwise { $a cmp $b } @s1,@s2) == 2); -} - -is(areBuddyStrings('fuck','fcuk'),true,'Example 1'); -is(areBuddyStrings('love','love'),false,'Example 2'); -is(areBuddyStrings('fodo','food'),true,'Example 3'); -is(areBuddyStrings('feed','feed'),true,'Example 4'); -is(areBuddyStrings('PerL','perl'),false,'Own example'); - -done_testing; diff --git a/challenge-331/ulrich-rieke/cpp/ch-1.cpp b/challenge-331/ulrich-rieke/cpp/ch-1.cpp new file mode 100755 index 0000000000..e1028f38d8 --- /dev/null +++ b/challenge-331/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,28 @@ +#include +#include +#include +#include +#include +#include + +int main( ) { + std::cout << "Enter a string!\n" ; + std::string line ; + std::getline( std::cin , line ) ; + std::regex rx ( "\\S+" ) ; + std::vector words ; + auto end = std::sregex_token_iterator {} ; + for ( auto it = std::sregex_token_iterator( std::begin( line ) , + std::end( line ) , rx ) ; it != end ; it++ ) { + words.push_back( *it ) ; + } + std::vector selected ; + for ( auto s : words ) { + if ( std::all_of( s.begin( ) , s.end( ) , []( auto c ){ return + std::isalnum( c ) ; } ) ) + selected.push_back( s ) ; + } + int len = static_cast( selected.size( ) ) ; + std::cout << selected[len - 1].size( ) << '\n' ; + return 0 ; +} diff --git a/challenge-331/ulrich-rieke/cpp/ch-2.cpp b/challenge-331/ulrich-rieke/cpp/ch-2.cpp new file mode 100755 index 0000000000..c0011269b6 --- /dev/null +++ b/challenge-331/ulrich-rieke/cpp/ch-2.cpp @@ -0,0 +1,60 @@ +#include +#include +#include +#include +#include +#include +#include + +std::vector split( const std::string & text , char delimiter ) { + std::vector tokens ; + std::istringstream istr { text } ; + std::string word ; + while ( std::getline( istr , word , delimiter ) ) + tokens.push_back( word ) ; + return tokens ; +} + +bool isSwapped( const std::pair , std::pair> + & neighbours ) { + auto firstPair = neighbours.first ; + auto secondPair = neighbours.second ; + return ((firstPair.first == secondPair.second) && firstPair.second == + secondPair.first) ; +} + +int main( ) { + std::cout << "Enter two strings separated by space!\n" ; + std::string line ; + std::getline( std::cin , line ) ; + auto tokens { split( line , ' ' ) } ; + auto firstWord { tokens[0] } ; + auto secondWord { tokens[1] } ; + std::set firstLetters( firstWord.begin( ) , firstWord.end( ) ) ; + std::set secondLetters( secondWord.begin( ) , secondWord.end( ) ) ; + if ( firstLetters == secondLetters && firstWord.length( ) == + secondWord.length( ) ) { + std::vector> zipped ; + int len = static_cast( firstWord.length( ) ) ; + for ( int i = 0 ; i < len ; i++ ) { + zipped.push_back( std::make_pair( firstWord[i] , secondWord[i] ) ) ; + } + std::vector, std::pair>> + allNeighbours ; + for ( int i = 0 ; i < len - 1 ; i++ ) { + allNeighbours.push_back(std::make_pair( zipped[i] , zipped[i + 1] )) ; + } + if ( std::count_if( allNeighbours.begin( ) , allNeighbours.end( ) , []( + const auto & p1 ) { return isSwapped( p1 ) ; } ) == 1 ) { + std::cout << "true" ; + } + else { + std::cout << "false" ; + } + } + else { + std::cout << "false" ; + } + std::cout << '\n' ; + return 0 ; +} diff --git a/challenge-331/ulrich-rieke/haskell/ch-1.hs b/challenge-331/ulrich-rieke/haskell/ch-1.hs new file mode 100755 index 0000000000..e61a8bff7d --- /dev/null +++ b/challenge-331/ulrich-rieke/haskell/ch-1.hs @@ -0,0 +1,15 @@ +module Challenge331 + where +import Data.List.Split ( splitWhen ) +import Data.Char ( isSpace , isAlphaNum) + +solution :: String -> Int +solution = length . last . filter (\s -> all isAlphaNum s ) . + filter ( not . null ) . splitWhen isSpace + + +main :: IO ( ) +main = do + putStrLn "Enter a string!" + line <- getLine + print $ solution line diff --git a/challenge-331/ulrich-rieke/haskell/ch-2.hs b/challenge-331/ulrich-rieke/haskell/ch-2.hs new file mode 100755 index 0000000000..6774402063 --- /dev/null +++ b/challenge-331/ulrich-rieke/haskell/ch-2.hs @@ -0,0 +1,27 @@ +module Challenge331_2 + where +import Data.List.Split ( divvy ) +import qualified Data.Set as S + +isSwapped :: [(Char , Char)] -> Bool +isSwapped neighbours = and [fst f == snd s , snd f == fst s] + where + f :: (Char , Char) + f = head neighbours + s :: (Char , Char) + s = last neighbours + +solution :: [String] -> Bool +solution theWords = and [ S.fromList first == S.fromList second , length first == + length second , (length $ filter isSwapped $ divvy 2 1 $ zip first second) + == 1 ] + where + first = head theWords + second = last theWords + +main :: IO ( ) +main = do + putStrLn "Enter two words separated by space!" + line <- getLine + print $ solution $ words line + diff --git a/challenge-331/ulrich-rieke/perl/ch-1.pl b/challenge-331/ulrich-rieke/perl/ch-1.pl new file mode 100755 index 0000000000..5ccdf2d58d --- /dev/null +++ b/challenge-331/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,12 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; + +say "Enter a string!" ; +my $word = ; +chomp $word ; +$word =~ s/^\s+// ; +$word =~ s/\s+$// ; +my @words = split( /\s+/ , $word ) ; +say length( $words[-1] ) ; diff --git a/challenge-331/ulrich-rieke/perl/ch-2.pl b/challenge-331/ulrich-rieke/perl/ch-2.pl new file mode 100755 index 0000000000..fabf2a342f --- /dev/null +++ b/challenge-331/ulrich-rieke/perl/ch-2.pl @@ -0,0 +1,49 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; +use List::Util qw ( zip ) ; + +sub isSwapped { + my $neighbours = shift ; + if ( $neighbours->[0][0] eq $neighbours->[1][1] && ( $neighbours->[0][1] eq + $neighbours->[1][0] )) { + return 1 ; + } + else { + return 0 ; + } +} + +say "Enter two words separated by space!" ; +my $line = ; +chomp $line ; +my @words = split( /\s/ , $line ) ; +#the condition can't be true if the words do not contain the same letters +my %firstHash ; +my %secondHash ; +map { $firstHash{$_}++ } split( // , $words[0] ) ; +map { $secondHash{$_}++ } split( // , $words[1] ) ; +#the condition can't be true if the length of the words is not equal +if ( length( $words[0] ) == length( $words[1] ) && keys( %firstHash ) == + keys( %secondHash ) ) { +#the idea is: if the words have the same letters and are equally long, then +#zip their letters and form pairs of neighbouring zip pairs. Then the above +#condition of being swapped must be fulfilled in exactly one + my @firstLetters = split( // , $words[0] ) ; + my @secondLetters = split( // , $words[1] ) ; + my @zipped = zip( \@firstLetters , \@secondLetters ) ; + my @neighbours ; + for my $pos( 0..length( $words[0] ) - 2 ) { + push( @neighbours , [$zipped[$pos] , $zipped[$pos + 1]] ) ; + } + if ( scalar( grep { isSwapped( $_ ) } @neighbours ) == 1 ) { + say "true" ; + } + else { + say "false" ; + } +} +else { + say "false" ; +} diff --git a/challenge-331/ulrich-rieke/raku/ch-1.raku b/challenge-331/ulrich-rieke/raku/ch-1.raku new file mode 100755 index 0000000000..bd36631738 --- /dev/null +++ b/challenge-331/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,5 @@ +say "Enter a string!" ; +my $word = $*IN.get ; +$word .= trim ; +my @words = $word.split( /\s+/ ) ; +say @words[*-1].chars ; diff --git a/challenge-331/ulrich-rieke/raku/ch-2.raku b/challenge-331/ulrich-rieke/raku/ch-2.raku new file mode 100755 index 0000000000..986a09b85a --- /dev/null +++ b/challenge-331/ulrich-rieke/raku/ch-2.raku @@ -0,0 +1,34 @@ +use v6 ; + +sub condition( $firstWord , $secondWord ) { + my %firstHash ; + my %secondHash ; + $firstWord.comb.map( {%firstHash{$_}++} ) ; + $secondWord.comb.map( {%secondHash{$_}++} ) ; + return %firstHash.keys == %secondHash.keys ; +} + +sub isSwapped( $aPair ) { + my $firstPair = $aPair[0] ; + my $secondPair = $aPair[1] ; + return $firstPair[ 0 ] eq $secondPair[1] && $firstPair[1] eq $secondPair[0] ; +} + +say "Enter two words separated by a space!" ; +my $line = $*IN.get ; +my @parts = $line.words ; +if ( @parts[0].chars == @parts[1].chars && condition( @parts[0] , @parts[1] ) ) { + my $first = @parts[0] ; + my $second = @parts[1] ; + my @pairs = $first.comb Z, $second.comb ; + my @neighbours = @pairs.rotor( 2 => -1 ) ; + if ( @neighbours.grep( {isSwapped( $_ )} ).elems == 1 ) { + say "true" ; + } + else { + say "false" ; + } +} +else { + say "false" ; +} diff --git a/challenge-331/ulrich-rieke/rust/ch-1.rs b/challenge-331/ulrich-rieke/rust/ch-1.rs new file mode 100755 index 0000000000..0b430577d0 --- /dev/null +++ b/challenge-331/ulrich-rieke/rust/ch-1.rs @@ -0,0 +1,15 @@ +use std::io ; + +fn main() { + println!("Enter a string!"); + let mut inline : String = String::new( ) ; + io::stdin( ).read_line( &mut inline ).unwrap( ) ; + let input : &str = inline.trim( ) ; + let words : Vec<&str> = input.split(char::is_whitespace).collect( ) ; + let non_empty : Vec<&str> = words.into_iter( ).filter( |&w| + w.chars( ).count( ) > 0 && w.chars( ).all( |c| c.is_alphanumeric( ))) + .collect( ) ; + println!("{:?}" , non_empty ) ; + let len : usize = non_empty.len( ) ; + println!("{}" , non_empty[len - 1].chars( ).count( ) ) ; +} diff --git a/challenge-331/ulrich-rieke/rust/ch-2.rs b/challenge-331/ulrich-rieke/rust/ch-2.rs new file mode 100755 index 0000000000..d11d6f3b42 --- /dev/null +++ b/challenge-331/ulrich-rieke/rust/ch-2.rs @@ -0,0 +1,54 @@ +use std::io ; +use std::collections::HashSet ; + +fn is_swapped( pair : &[(char , char)]) -> bool { + let first = pair[0] ; + let second = pair[1] ; + first.0 == second.1 && first.1 == second.0 +} + +//same number of characters +fn condition_1( words : &Vec<&str> ) -> bool { + words[0].chars( ).count( ) == words[1].chars( ).count( ) +} + +//same characters +fn condition_2( words : &Vec<&str> ) -> bool { + let mut first_letters = HashSet::new( ) ; + let mut second_letters = HashSet::new( ) ; + let first_word = words[0] ; + let second_word = words[1] ; + for c in first_word.chars( ) { + first_letters.insert( c ) ; + } + for c in second_word.chars( ) { + second_letters.insert( c ) ; + } + first_letters == second_letters +} + +fn main() { + println!("Enter two strings separated by a space!"); + let mut inline : String = String::new( ) ; + io::stdin( ).read_line( &mut inline ).unwrap( ) ; + let words : Vec<&str> = inline.trim( ).split_whitespace( ).collect( ) ; + if condition_1( &words ) && condition_2( &words ) { + let first_word = words[0] ; + let second_word = words[1] ; + let pairs : Vec<(char , char)> = first_word.chars( ) + .zip( second_word.chars( ) ).collect( ) ; + let pair_slice = pairs.as_slice( ) ; + let neighbour_pairs : Vec<&[(char,char)]> = pair_slice.windows( 2 ) + .collect( ) ; + if neighbour_pairs.into_iter( ).filter( |&v| is_swapped( v )).count( ) + == 1 { + println!("true") ; + } + else { + println!("false") ; + } + } + else { + println!("false") ; + } +} diff --git a/stats/pwc-challenge-330.json b/stats/pwc-challenge-330.json new file mode 100644 index 0000000000..ca3e7375a3 --- /dev/null +++ b/stats/pwc-challenge-330.json @@ -0,0 +1,668 @@ +{ + "chart" : { + "type" : "column" + }, + "drilldown" : { + "series" : [ + { + "data" : [ + [ + "Perl", + 1 + ] + ], + "id" : "Alexander Karelas", + "name" : "Alexander Karelas" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Ali Moradi", + "name" : "Ali Moradi" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Andreas Mahnke", + "name" : "Andreas Mahnke" + }, + { + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Andrew Shitov", + "name" : "Andrew Shitov" + }, + { + "data" : [ + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Arne Sommer", + "name" : "Arne Sommer" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ], + "id" : "Athanasius", + "name" : "Athanasius" + }, + { + "data" : [ + [ + "Raku", + 1 + ] + ], + "id" : "BarrOff", + "name" : "BarrOff" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Bob Lied", + "name" : "Bob Lied" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "David Ferrone", + "name" : "David Ferrone" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "E. Choroba", + "name" : "E. Choroba" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Fabio Valeri", + "name" : "Fabio Valeri" + }, + { + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Feng Chang", + "name" : "Feng Chang" + }, + { + "data" : [ + [ + "Perl", + 1 + ] + ], + "id" : "Harry Wozniak", + "name" : "Harry Wozniak" + }, + { + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Humberto Massa", + "name" : "Humberto Massa" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Jaldhar H. Vyas", + "name" : "Jaldhar H. Vyas" + }, + { + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Jan Krnavek", + "name" : "Jan Krnavek" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Jorg Sommrey", + "name" : "Jorg Sommrey" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Kjetil Skotheim", + "name" : "Kjetil Skotheim" + }, + { + "data" : [ + [ + "Raku", + 2 + ], + [ + "Blog", + 10 + ] + ], + "id" : "Luca Ferrari", + "name" : "Luca Ferrari" + }, + { + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Mark Anderson", + "name" : "Mark Anderson" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Matthias Muth", + "name" : "Matthias Muth" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "mauke", + "name" : "mauke" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Niels van Dijke", + "name" : "Niels van Dijke" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Packy Anderson", + "name" : "Packy Anderson" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Peter Meszaros", + "name" : "Peter Meszaros" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Robbie Hatley", + "name" : "Robbie Hatley" + }, + { + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Robert Ransbottom", + "name" : "Robert Ransbottom" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Roger Bell_West", + "name" : "Roger Bell_West" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Simon Green", + "name" : "Simon Green" + }, + { + "data" : [ + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Simon Proctor", + "name" : "Simon Proctor" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 2 + ] + ], + "id" : "Thomas Kohler", + "name" : "Thomas Kohler" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ], + "id" : "Ulrich Rieke", + "name" : "Ulrich Rieke" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "W. Luis Mochan", + "name" : "W. Luis Mochan" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Wanderdoc", + "name" : "Wanderdoc" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Yitzchak Scott-Thoennes", + "name" : "Yitzchak Scott-Thoennes" + } + ] + }, + "legend" : { + "enabled" : 0 + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } + }, + "series" : [ + { + "colorByPoint" : 1, + "data" : [ + { + "drilldown" : "Alexander Karelas", + "name" : "Alexander Karelas", + "y" : 1 + }, + { + "drilldown" : "Ali Moradi", + "name" : "Ali Moradi", + "y" : 3 + }, + { + "drilldown" : "Andreas Mahnke", + "name" : "Andreas Mahnke", + "y" : 2 + }, + { + "drilldown" : "Andrew Shitov", + "name" : "Andrew Shitov", + "y" : 2 + }, + { + "drilldown" : "Arne Sommer", + "name" : "Arne Sommer", + "y" : 3 + }, + { + "drilldown" : "Athanasius", + "name" : "Athanasius", + "y" : 4 + }, + { + "drilldown" : "BarrOff", + "name" : "BarrOff", + "y" : 1 + }, + { + "drilldown" : "Bob Lied", + "name" : "Bob Lied", + "y" : 2 + }, + { + "drilldown" : "David Ferrone", + "name" : "David Ferrone", + "y" : 2 + }, + { + "drilldown" : "E. Choroba", + "name" : "E. Choroba", + "y" : 2 + }, + { + "drilldown" : "Fabio Valeri", + "name" : "Fabio Valeri", + "y" : 2 + }, + { + "drilldown" : "Feng Chang", + "name" : "Feng Chang", + "y" : 2 + }, + { + "drilldown" : "Harry Wozniak", + "name" : "Harry Wozniak", + "y" : 1 + }, + { + "drilldown" : "Humberto Massa", + "name" : "Humberto Massa", + "y" : 2 + }, + { + "drilldown" : "Jaldhar H. Vyas", + "name" : "Jaldhar H. Vyas", + "y" : 5 + }, + { + "drilldown" : "Jan Krnavek", + "name" : "Jan Krnavek", + "y" : 2 + }, + { + "drilldown" : "Jorg Sommrey", + "name" : "Jorg Sommrey", + "y" : 3 + }, + { + "drilldown" : "Kjetil Skotheim", + "name" : "Kjetil Skotheim", + "y" : 2 + }, + { + "drilldown" : "Luca Ferrari", + "name" : "Luca Ferrari", + "y" : 12 + }, + { + "drilldown" : "Mark Anderson", + "name" : "Mark Anderson", + "y" : 2 + }, + { + "drilldown" : "Matthias Muth", + "name" : "Matthias Muth", + "y" : 3 + }, + { + "drilldown" : "mauke", + "name" : "mauke", + "y" : 2 + }, + { + "drilldown" : "Niels van Dijke", + "name" : "Niels van Dijke", + "y" : 2 + }, + { + "drilldown" : "Packy Anderson", + "name" : "Packy Anderson", + "y" : 5 + }, + { + "drilldown" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith", + "y" : 3 + }, + { + "drilldown" : "Peter Meszaros", + "name" : "Peter Meszaros", + "y" : 2 + }, + { + "drilldown" : "Robbie Hatley", + "name" : "Robbie Hatley", + "y" : 3 + }, + { + "drilldown" : "Robert Ransbottom", + "name" : "Robert Ransbottom", + "y" : 2 + }, + { + "drilldown" : "Roger Bell_West", + "name" : "Roger Bell_West", + "y" : 5 + }, + { + "drilldown" : "Simon Green", + "name" : "Simon Green", + "y" : 3 + }, + { + "drilldown" : "Simon Proctor", + "name" : "Simon Proctor", + "y" : 3 + }, + { + "drilldown" : "Thomas Kohler", + "name" : "Thomas Kohler", + "y" : 4 + }, + { + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke", + "y" : 4 + }, + { + "drilldown" : "W. Luis Mochan", + "name" : "W. Luis Mochan", + "y" : 3 + }, + { + "drilldown" : "Wanderdoc", + "name" : "Wanderdoc", + "y" : 2 + }, + { + "drilldown" : "Yitzchak Scott-Thoennes", + "name" : "Yitzchak Scott-Thoennes", + "y" : 3 + } + ], + "name" : "The Weekly Challenge - 330" + } + ], + "subtitle" : { + "text" : "[Champions: 36] Last updated at 2025-07-21 23:34:04 GMT" + }, + "title" : { + "text" : "The Weekly Challenge - 330" + }, + "tooltip" : { + "followPointer" : 1, + "headerFormat" : "{series.name}
", + "pointFormat" : "{point.name}: {point.y:f}
" + }, + "xAxis" : { + "type" : "category" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + } +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 242b2b06d7..d5d591bd44 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -8,26 +8,12 @@ "data" : [ [ "Perl", - 1 + 2 ] ], "id" : "Alexander Karelas", "name" : "Alexander Karelas" }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Ali Moradi", - "name" : "Ali Moradi" - }, { "data" : [ [ @@ -48,54 +34,6 @@ "id" : "Andrew Shitov", "name" : "Andrew Shitov" }, - { - "data" : [ - [ - "Raku", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Arne Sommer", - "name" : "Arne Sommer" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Raku", - 2 - ] - ], - "id" : "Athanasius", - "name" : "Athanasius" - }, - { - "data" : [ - [ - "Raku", - 1 - ] - ], - "id" : "BarrOff", - "name" : "BarrOff" - }, - { - "data" : [ - [ - "Perl", - 2 - ] - ], - "id" : "Bob Lied", - "name" : "Bob Lied" - }, { "data" : [ [ @@ -116,16 +54,6 @@ "id" : "E. Choroba", "name" : "E. Choroba" }, - { - "data" : [ - [ - "Perl", - 2 - ] - ], - "id" : "Fabio Valeri", - "name" : "Fabio Valeri" - }, { "data" : [ [ @@ -136,68 +64,6 @@ "id" : "Feng Chang", "name" : "Feng Chang" }, - { - "data" : [ - [ - "Perl", - 1 - ] - ], - "id" : "Harry Wozniak", - "name" : "Harry Wozniak" - }, - { - "data" : [ - [ - "Raku", - 2 - ] - ], - "id" : "Humberto Massa", - "name" : "Humberto Massa" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Raku", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Jaldhar H. Vyas", - "name" : "Jaldhar H. Vyas" - }, - { - "data" : [ - [ - "Raku", - 2 - ] - ], - "id" : "Jan Krnavek", - "name" : "Jan Krnavek" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Jorg Sommrey", - "name" : "Jorg Sommrey" - }, { "data" : [ [ @@ -208,20 +74,6 @@ "id" : "Kjetil Skotheim", "name" : "Kjetil Skotheim" }, - { - "data" : [ - [ - "Raku", - 2 - ], - [ - "Blog", - 10 - ] - ], - "id" : "Luca Ferrari", - "name" : "Luca Ferrari" - }, { "data" : [ [ @@ -232,20 +84,6 @@ "id" : "Mark Anderson", "name" : "Mark Anderson" }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Matthias Muth", - "name" : "Matthias Muth" - }, { "data" : [ [ @@ -261,18 +99,10 @@ [ "Perl", 2 - ], - [ - "Raku", - 2 - ], - [ - "Blog", - 1 ] ], - "id" : "Packy Anderson", - "name" : "Packy Anderson" + "id" : "Niels van Dijke", + "name" : "Niels van Dijke" }, { "data" : [ @@ -298,71 +128,11 @@ "id" : "Peter Meszaros", "name" : "Peter Meszaros" }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Robbie Hatley", - "name" : "Robbie Hatley" - }, - { - "data" : [ - [ - "Raku", - 2 - ] - ], - "id" : "Robert Ransbottom", - "name" : "Robert Ransbottom" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Raku", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Roger Bell_West", - "name" : "Roger Bell_West" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Simon Green", - "name" : "Simon Green" - }, { "data" : [ [ "Raku", 2 - ], - [ - "Blog", - 1 ] ], "id" : "Simon Proctor", @@ -409,30 +179,6 @@ ], "id" : "W. Luis Mochan", "name" : "W. Luis Mochan" - }, - { - "data" : [ - [ - "Perl", - 2 - ] - ], - "id" : "Wanderdoc", - "name" : "Wanderdoc" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Yitzchak Scott-Thoennes", - "name" : "Yitzchak Scott-Thoennes" } ] }, @@ -455,12 +201,7 @@ { "drilldown" : "Alexander Karelas", "name" : "Alexander Karelas", - "y" : 1 - }, - { - "drilldown" : "Ali Moradi", - "name" : "Ali Moradi", - "y" : 3 + "y" : 2 }, { "drilldown" : "Andreas Mahnke", @@ -472,26 +213,6 @@ "name" : "Andrew Shitov", "y" : 2 }, - { - "drilldown" : "Arne Sommer", - "name" : "Arne Sommer", - "y" : 3 - }, - { - "drilldown" : "Athanasius", - "name" : "Athanasius", - "y" : 4 - }, - { - "drilldown" : "BarrOff", - "name" : "BarrOff", - "y" : 1 - }, - { - "drilldown" : "Bob Lied", - "name" : "Bob Lied", - "y" : 2 - }, { "drilldown" : "David Ferrone", "name" : "David Ferrone", @@ -502,70 +223,30 @@ "name" : "E. Choroba", "y" : 2 }, - { - "drilldown" : "Fabio Valeri", - "name" : "Fabio Valeri", - "y" : 2 - }, { "drilldown" : "Feng Chang", "name" : "Feng Chang", "y" : 2 }, - { - "drilldown" : "Harry Wozniak", - "name" : "Harry Wozniak", - "y" : 1 - }, - { - "drilldown" : "Humberto Massa", - "name" : "Humberto Massa", - "y" : 2 - }, - { - "drilldown" : "Jaldhar H. Vyas", - "name" : "Jaldhar H. Vyas", - "y" : 5 - }, - { - "drilldown" : "Jan Krnavek", - "name" : "Jan Krnavek", - "y" : 2 - }, - { - "drilldown" : "Jorg Sommrey", - "name" : "Jorg Sommrey", - "y" : 3 - }, { "drilldown" : "Kjetil Skotheim", "name" : "Kjetil Skotheim", "y" : 2 }, - { - "drilldown" : "Luca Ferrari", - "name" : "Luca Ferrari", - "y" : 12 - }, { "drilldown" : "Mark Anderson", "name" : "Mark Anderson", "y" : 2 }, - { - "drilldown" : "Matthias Muth", - "name" : "Matthias Muth", - "y" : 3 - }, { "drilldown" : "mauke", "name" : "mauke", "y" : 2 }, { - "drilldown" : "Packy Anderson", - "name" : "Packy Anderson", - "y" : 5 + "drilldown" : "Niels van Dijke", + "name" : "Niels van Dijke", + "y" : 2 }, { "drilldown" : "Peter Campbell Smith", @@ -577,30 +258,10 @@ "name" : "Peter Meszaros", "y" : 2 }, - { - "drilldown" : "Robbie Hatley", - "name" : "Robbie Hatley", - "y" : 3 - }, - { - "drilldown" : "Robert Ransbottom", - "name" : "Robert Ransbottom", - "y" : 2 - }, - { - "drilldown" : "Roger Bell_West", - "name" : "Roger Bell_West", - "y" : 5 - }, - { - "drilldown" : "Simon Green", - "name" : "Simon Green", - "y" : 3 - }, { "drilldown" : "Simon Proctor", "name" : "Simon Proctor", - "y" : 3 + "y" : 2 }, { "drilldown" : "Thomas Kohler", @@ -616,26 +277,16 @@ "drilldown" : "W. Luis Mochan", "name" : "W. Luis Mochan", "y" : 3 - }, - { - "drilldown" : "Wanderdoc", - "name" : "Wanderdoc", - "y" : 2 - }, - { - "drilldown" : "Yitzchak Scott-Thoennes", - "name" : "Yitzchak Scott-Thoennes", - "y" : 3 } ], - "name" : "The Weekly Challenge - 330" + "name" : "The Weekly Challenge - 331" } ], "subtitle" : { - "text" : "[Champions: 35] Last updated at 2025-07-21 02:05:36 GMT" + "text" : "[Champions: 16] Last updated at 2025-07-21 23:43:57 GMT" }, "title" : { - "text" : "The Weekly Challenge - 330" + "text" : "The Weekly Challenge - 331" }, "tooltip" : { "followPointer" : 1, diff --git a/stats/pwc-language-breakdown-2019.json b/stats/pwc-language-breakdown-2019.json index 5e330953cd..6ce157c3b4 100644 --- a/stats/pwc-language-breakdown-2019.json +++ b/stats/pwc-language-breakdown-2019.json @@ -970,7 +970,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-07-21 02:05:36 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-07-21 23:43:57 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2020.json b/stats/pwc-language-breakdown-2020.json index df95d15da8..e2443c0eb9 100644 --- a/stats/pwc-language-breakdown-2020.json +++ b/stats/pwc-language-breakdown-2020.json @@ -1223,7 +1223,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-07-21 02:05:36 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-07-21 23:43:57 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2021.json b/stats/pwc-language-breakdown-2021.json index e0a5fb7ada..5d0812d050 100644 --- a/stats/pwc-language-breakdown-2021.json +++ b/stats/pwc-language-breakdown-2021.json @@ -1223,7 +1223,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-07-21 02:05:36 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-07-21 23:43:57 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2022.json b/stats/pwc-language-breakdown-2022.json index d637d85342..09d8c32df0 100644 --- a/stats/pwc-language-breakdown-2022.json +++ b/stats/pwc-language-breakdown-2022.json @@ -1223,7 +1223,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-07-21 02:05:36 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-07-21 23:43:57 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2023.json b/stats/pwc-language-breakdown-2023.json index 9a0eb116f9..dbd982f910 100644 --- a/stats/pwc-language-breakdown-2023.json +++ b/stats/pwc-language-breakdown-2023.json @@ -1200,7 +1200,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-07-21 02:05:36 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-07-21 23:43:57 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2024.json b/stats/pwc-language-breakdown-2024.json index 131295082c..1263c4056f 100644 --- a/stats/pwc-language-breakdown-2024.json +++ b/stats/pwc-language-breakdown-2024.json @@ -1246,7 +1246,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-07-21 02:05:36 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-07-21 23:43:57 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2025.json b/stats/pwc-language-breakdown-2025.json index 8e136335aa..44a717b473 100644 --- a/stats/pwc-language-breakdown-2025.json +++ b/stats/pwc-language-breakdown-2025.json @@ -8,7 +8,25 @@ "data" : [ [ "Perl", - 48 + 24 + ], + [ + "Raku", + 10 + ], + [ + "Blog", + 4 + ] + ], + "id" : "331", + "name" : "331" + }, + { + "data" : [ + [ + "Perl", + 50 ], [ "Raku", @@ -526,10 +544,15 @@ { "colorByPoint" : "true", "data" : [ + { + "drilldown" : "331", + "name" : "331", + "y" : 38 + }, { "drilldown" : "330", "name" : "330", - "y" : 102 + "y" : 104 }, { "drilldown" : "329", @@ -671,7 +694,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-07-21 02:05:36 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-07-21 23:43:57 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 08ccebeb53..550d461f6d 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -10,15 +10,15 @@ "data" : [ [ "Perl", - 17050 + 17076 ], [ "Raku", - 9493 + 9503 ], [ "Blog", - 6107 + 6111 ] ], "dataLabels" : { @@ -37,7 +37,7 @@ } ], "subtitle" : { - "text" : "Last updated at 2025-07-21 02:05:36 GMT" + "text" : "Last updated at 2025-07-21 23:43:57 GMT" }, "title" : { "text" : "The Weekly Challenge Contributions [2019 - 2025]" diff --git a/stats/pwc-leaders.json b/stats/pwc-leaders.json index b808a750c2..128e16d0c1 100644 --- a/stats/pwc-leaders.json +++ b/stats/pwc-leaders.json @@ -112,11 +112,11 @@ "data" : [ [ "Perl", - 498 + 500 ], [ "Raku", - 506 + 508 ] ], "id" : "Ulrich Rieke", @@ -194,7 +194,7 @@ "data" : [ [ "Perl", - 478 + 480 ], [ "Raku", @@ -202,7 +202,7 @@ ], [ "Blog", - 239 + 240 ] ], "id" : "W. Luis Mochan", @@ -212,7 +212,7 @@ "data" : [ [ "Perl", - 649 + 651 ], [ "Blog", @@ -286,11 +286,11 @@ "data" : [ [ "Perl", - 386 + 388 ], [ "Blog", - 186 + 187 ] ], "id" : "Peter Campbell Smith", @@ -304,7 +304,7 @@ ], [ "Raku", - 523 + 525 ], [ "Blog", @@ -318,11 +318,11 @@ "data" : [ [ "Perl", - 262 + 264 ], [ "Blog", - 255 + 257 ] ], "id" : "Thomas Kohler", @@ -336,7 +336,7 @@ ], [ "Raku", - 451 + 453 ] ], "id" : "Feng Chang", @@ -442,7 +442,7 @@ "data" : [ [ "Perl", - 398 + 402 ] ], "id" : "Niels van Dijke", @@ -558,7 +558,7 @@ "data" : [ [ "Perl", - 298 + 300 ], [ "Raku", @@ -594,7 +594,7 @@ ], [ "Raku", - 273 + 275 ], [ "Blog", @@ -646,7 +646,7 @@ "data" : [ [ "Perl", - 262 + 264 ] ], "id" : "Peter Meszaros", @@ -752,7 +752,7 @@ "data" : [ [ "Perl", - 166 + 168 ] ], "id" : "Kjetil Skotheim", @@ -827,7 +827,7 @@ { "drilldown" : "Ulrich Rieke", "name" : "7: Ulrich Rieke", - "y" : 2008 + "y" : 2016 }, { "drilldown" : "Flavio Poletti", @@ -852,12 +852,12 @@ { "drilldown" : "W. Luis Mochan", "name" : "12: W. Luis Mochan", - "y" : 1438 + "y" : 1444 }, { "drilldown" : "E. Choroba", "name" : "13: E. Choroba", - "y" : 1412 + "y" : 1416 }, { "drilldown" : "Colin Crain", @@ -882,22 +882,22 @@ { "drilldown