diff options
22 files changed, 2102 insertions, 1875 deletions
diff --git a/challenge-145/ulrich-rieke/cpp/ch-1.cpp b/challenge-145/ulrich-rieke/cpp/ch-1.cpp new file mode 100644 index 0000000000..9ab7cad276 --- /dev/null +++ b/challenge-145/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,35 @@ +#include <iostream> +#include <vector> + +int main( ) { + std::cout << "Please enter an array, number by number( negative number " ; + std::cout << "to end!)\n" ; + int num ; + std::vector<int> nums1 ; + std::vector<int> nums2 ; + std::cin >> num ; + while ( num > 0 ) { + nums1.push_back( num ) ; + std::cin >> num ; + } + std::cout << "Enter second array, as many numbers as in first array!\n" ; + std::cin >> num ; + while ( num > 0 ) { + nums2.push_back( num ) ; + std::cin >> num ; + } + while ( nums2.size( ) != nums1.size( ) ) { + nums2.clear( ) ; + std::cout << "second array should have as many numbers as the first array!\n" ; + std::cin >> num ; + while ( num > 0 ) { + nums2.push_back( num ) ; + std::cin >> num ; + } + } + int sum = 0 ; + for ( int i = 0 ; i < nums1.size( ) ; i++ ) + sum += nums1[ i ] * nums2[ i ] ; + std::cout << sum << std::endl ; + return 0 ; +} diff --git a/challenge-145/ulrich-rieke/cpp/ch-2.cpp b/challenge-145/ulrich-rieke/cpp/ch-2.cpp new file mode 100644 index 0000000000..0344afadfe --- /dev/null +++ b/challenge-145/ulrich-rieke/cpp/ch-2.cpp @@ -0,0 +1,38 @@ +#include <iostream> +#include <string> +#include <vector> +#include <algorithm> + +bool isPalindrome( std::string & word ) { + std::string comparedTo( word ) ; + std::reverse( comparedTo.begin( ) , comparedTo.end( ) ) ; + return comparedTo == word ; +} + +int main( int argc , char * argv[ ] ) { + std::string s( argv[ 1 ] ) ; + std::vector<std::string> palindromes ; + int len = s.length( ) ; + for ( int i = 0 ; i < len ; i++ ) { + if ( std::find( palindromes.begin( ) , palindromes.end( ) , + s.substr( i , 1 ) ) == palindromes.end( ) ) + palindromes.push_back( s.substr( i , 1 ) ) ; + int diff = len - i ; + while ( diff > 1 ) { + std::string wordpart { s.substr( i , diff ) } ; + if ( isPalindrome( wordpart ) && std::find( palindromes.begin( ) , + palindromes.end( ) , wordpart ) == palindromes.end( ) ) { + palindromes.push_back( wordpart ) ; + break ; + } + else { + diff-- ; + } + } + } + for ( auto str : palindromes ) { + std::cout << str << ' ' ; + } + std::cout << std::endl ; + return 0 ; +} diff --git a/challenge-145/ulrich-rieke/haskell/ch-1.hs b/challenge-145/ulrich-rieke/haskell/ch-1.hs new file mode 100644 index 0000000000..6449c1c948 --- /dev/null +++ b/challenge-145/ulrich-rieke/haskell/ch-1.hs @@ -0,0 +1,5 @@ +module Challenge145 + where + +solution :: [Int] -> [Int] -> Int +solution list1 list2 = sum $ zipWith( * ) list1 list2 diff --git a/challenge-145/ulrich-rieke/haskell/ch-2.hs b/challenge-145/ulrich-rieke/haskell/ch-2.hs new file mode 100644 index 0000000000..6a3e19c680 --- /dev/null +++ b/challenge-145/ulrich-rieke/haskell/ch-2.hs @@ -0,0 +1,14 @@ +module Challenge145_2 + where +import Data.List ( nub , inits , (!!) ) + +findList :: Int -> String -> [String] +findList pos str = [[ str !! pos ]] ++ [ head $ filter isPalindrome $ reverse +$ inits $ drop pos str ] + +isPalindrome :: String -> Bool +isPalindrome str = str == reverse str + +solution :: String -> [String] +solution str = nub $ concat $ map (\i -> findList i str ) +[0 .. length str - 1] diff --git a/challenge-145/ulrich-rieke/perl/ch-1.pl b/challenge-145/ulrich-rieke/perl/ch-1.pl new file mode 100644 index 0000000000..cc3525d33a --- /dev/null +++ b/challenge-145/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,26 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; +use List::Util qw ( sum ) ; + +say "Enter an array of numbers!" ; +my $line = <STDIN> ; +chomp $line ; +my @numbers1 = split( /\s+/ , $line ) ; +say "Enter a second array of the same size!" ; +$line = <STDIN> ; +chomp $line ; +my @numbers2 = split( /\s+/ , $line ) ; +while ( scalar( @numbers2 ) != scalar( @numbers1 ) ) { + say "The second array must contain as many numbers as the first one!" ; + say "Re-enter!" ; + $line = <STDIN> ; + chomp $line ; + @numbers2 = split( /\s+/ , $line ) ; +} +my @products ; +for my $i ( 0 .. scalar( @numbers1 ) - 1 ) { + push @products , $numbers1[ $i ] * $numbers2[ $i ] ; +} +say sum( @products ) ; diff --git a/challenge-145/ulrich-rieke/perl/ch-2.pl b/challenge-145/ulrich-rieke/perl/ch-2.pl new file mode 100644 index 0000000000..ed674306f3 --- /dev/null +++ b/challenge-145/ulrich-rieke/perl/ch-2.pl @@ -0,0 +1,43 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; + +sub contains { + my $words = shift ; + my $searched = shift ; + my @nums = @$words ; + for my $num ( @nums ) { + if ( $searched eq $num ) { + return 1 ; + } + } + return 0 ; +} + +sub isPalindrome { + my $word = shift ; + return $word eq join( '' , reverse split( // , $word )) ; +} + +my $s = $ARGV[0] ; +my @palindromes ; +my $len = length( $s ) ; +for my $let ( 0 .. $len - 1 ) { + unless ( contains( \@palindromes , substr( $s , $let , 1 ))) { + push @palindromes , substr( $s , $let , 1 ) ; + } + my $diff = $len - $let ; + while ( $diff > 1 ) { + my $wordpart = substr( $s , $let , $diff ) ; + if ( isPalindrome( $wordpart ) && not contains( \@palindromes , + $wordpart)) { + push @palindromes, $wordpart ; + last ; + } + else { + $diff-- ; + } + } +} +say join( ' ' , @palindromes ) ; diff --git a/challenge-145/ulrich-rieke/raku/ch-1.raku b/challenge-145/ulrich-rieke/raku/ch-1.raku new file mode 100644 index 0000000000..8ea036abfc --- /dev/null +++ b/challenge-145/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,14 @@ +use v6 ; + +say "Enter first number array!" ; +my $line = $*IN.get ; +my @nums1 = $line.split( /\s+/).map( {.Int} ) ; +say "and another number array of the same size!" ; +$line = $*IN.get ; +my @nums2 = $line.split( /\s+/ ).map( {.Int} ) ; +while ( @nums2.elems != @nums1.elems ) { + say "second array must have the same size as first array! Re-enter!" ; + $line = $*IN.get ; + @nums2 = $line.split( /\s+/ ).map( {.Int} ) ; +} +say [+] ( @nums1 Z* @nums2 ) ; diff --git a/challenge-145/ulrich-rieke/raku/ch-2.raku b/challenge-145/ulrich-rieke/raku/ch-2.raku new file mode 100644 index 0000000000..b872d57d36 --- /dev/null +++ b/challenge-145/ulrich-rieke/raku/ch-2.raku @@ -0,0 +1,33 @@ +use v6 ; + +sub isPalindrome( Str $word --> Bool ) { + return $word eq $word.flip ; +} + +sub contains( @strings , $substring ) { + my $words = @strings.Set ; + return $substring (elem) $words ; +} + +sub MAIN( Str $s is copy ) { + my @palindromes ; + my $len = $s.chars ; + for (0 .. $len - 1 ) -> $let { + unless ( contains( @palindromes , $s.substr( $let , 1 ) ) ) { + @palindromes.push( $s.substr( $let , 1 ) ) ; + } + my $diff = $len - $let ; + while ( $diff > 1 ) { + my $wordpart = $s.substr( $let , $diff ) ; + if ( isPalindrome( $wordpart) && not contains( @palindromes , + $wordpart)) { + @palindromes.push( $wordpart ) ; + last ; + } + else { + $diff-- ; + } + } + } + say @palindromes.join( ' ' ) ; +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index cbf95f0533..567cb2f55f 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,91 +1,24 @@ { - "subtitle" : { - "text" : "[Champions: 11] Last updated at 2021-12-28 13:55:46 GMT" + "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/>" - }, - "series" : [ - { - "colorByPoint" : 1, - "data" : [ - { - "name" : "Andrew Shitov", - "y" : 1, - "drilldown" : "Andrew Shitov" - }, - { - "drilldown" : "Dave Jacoby", - "y" : 3, - "name" : "Dave Jacoby" - }, - { - "drilldown" : "Laurent Rosenfeld", - "y" : 3, - "name" : "Laurent Rosenfeld" - }, - { - "drilldown" : "Mark Anderson", - "y" : 1, - "name" : "Mark Anderson" - }, - { - "drilldown" : "Mohammad S Anwar", - "y" : 1, - "name" : "Mohammad S Anwar" - }, - { - "drilldown" : "Olivier Delouya", - "name" : "Olivier Delouya", - "y" : 1 - }, - { - "drilldown" : "Paulo Custodio", - "name" : "Paulo Custodio", - "y" : 2 - }, - { - "y" : 3, - "name" : "Peter Campbell Smith", - "drilldown" : "Peter Campbell Smith" - }, - { - "drilldown" : "Robert DiCicco", - "name" : "Robert DiCicco", - "y" : 2 - }, - { - "y" : 5, - "name" : "Roger Bell_West", - "drilldown" : "Roger Bell_West" - }, - { - "name" : "W. Luis Mochan", - "y" : 3, - "drilldown" : "W. Luis Mochan" - } - ], - "name" : "The Weekly Challenge - 145" - } - ], - "title" : { - "text" : "The Weekly Challenge - 145" - }, - "chart" : { - "type" : "column" + "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/>" }, "drilldown" : { "series" : [ { + "id" : "Andrew Shitov", "data" : [ [ "Raku", 1 ] ], - "id" : "Andrew Shitov", "name" : "Andrew Shitov" }, { @@ -121,47 +54,46 @@ "id" : "Laurent Rosenfeld" }, { + "name" : "Mark Anderson", "id" : "Mark Anderson", "data" : [ [ "Raku", 1 ] - ], - "name" : "Mark Anderson" + ] }, { - "name" : "Mohammad S Anwar", - "id" : "Mohammad S Anwar", "data" : [ [ "Perl", 1 ] - ] + ], + "id" : "Mohammad S Anwar", + "name" : "Mohammad S Anwar" }, { - "id" : "Olivier Delouya", "data" : [ [ "Perl", 1 ] ], + "id" : "Olivier Delouya", "name" : "Olivier Delouya" }, { + "name" : "Paulo Custodio", "data" : [ [ "Perl", 2 ] ], - "id" : "Paulo Custodio", - "name" : "Paulo Custodio" + "id" : "Paulo Custodio" }, { - "name" : "Peter Campbell Smith", "data" : [ [ "Perl", @@ -172,20 +104,20 @@ 1 ] ], - "id" : "Peter Campbell Smith" + "id" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith" }, { - "name" : "Robert DiCicco", "id" : "Robert DiCicco", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Robert DiCicco" }, { - "name" : "Roger Bell_West", "id" : "Roger Bell_West", "data" : [ [ @@ -200,10 +132,25 @@ "Blog", 1 ] - ] + ], + "name" : "Roger Bell_West" + }, + { + "id" : "Ulrich Rieke", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ], + "name" : "Ulrich Rieke" }, { - "name" : "W. Luis Mochan", + "id" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -214,13 +161,10 @@ 1 ] ], - "id" : "W. Luis Mochan" + "name" : "W. Luis Mochan" } ] }, - "legend" : { - "enabled" : 0 - }, "plotOptions" : { "series" : { "dataLabels" : { @@ -230,12 +174,87 @@ "borderWidth" : 0 } }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" + "series" : [ + { + "colorByPoint" : 1, + "name" : "The Weekly Challenge - 145", + "data" : [ + { + "drilldown" : "Andrew Shitov", + "name" : "Andrew Shitov", + "y" : 1 + }, + { + "y" : 3, + "name" : "Dave Jacoby", + "drilldown" : "Dave Jacoby" + }, + { + "y" : 3, + "name" : "Laurent Rosenfeld", + "drilldown" : "Laurent Rosenfeld" + }, + { + "y" : 1, + "drilldown" : "Mark Anderson", + "name" : "Mark Anderson" + }, + { + "drilldown" : "Mohammad S Anwar", + "name" : "Mohammad S Anwar", + "y" : 1 + }, + { + "y" : 1, + "drilldown" : "Olivier Delouya", + "name" : "Olivier Delouya" + }, + { + "y" : 2, + "drilldown" : "Paulo Custodio", + "name" : "Paulo Custodio" + }, + { + "drilldown" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith", + "y" : 3 + }, + { + "name" : "Robert DiCicco", + "drilldown" : "Robert DiCicco", + "y" : 2 + }, + { + "drilldown" : "Roger Bell_West", + "name" : "Roger Bell_West", + "y" : 5 + }, + { + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke", + "y" : 4 + }, + { + "y" : 3, + "name" : "W. Luis Mochan", + "drilldown" : "W. Luis Mochan" + } + ] } - }, + ], "xAxis" : { "type" : "category" + }, + "subtitle" : { + "text" : "[Champions: 12] Last updated at 2021-12-28 16:15:58 GMT" + }, + "title" : { + "text" : "The Weekly Challenge - 145" + }, + "legend" : { + "enabled" : 0 + }, + "chart" : { + "type" : "column" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 6cd224c505..52f80f931b 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,44 +1,25 @@ { - "yAxis" : { - "min" : 0, - "title" : { - "text" : null - } - }, "xAxis" : { + "type" : "category", "labels" : { "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" } - }, - "type" : "category" - }, - "legend" : { - "enabled" : "false" - }, - "chart" : { - "type" : "column" - }, - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" - }, - "subtitle" : { - "text" : "Last updated at 2021-12-28 13:55:46 GMT" + } }, "series" : [ { - "name" : "Contributions", "dataLabels" : { "color" : "#FFFFFF", - "enabled" : "true", - "y" : 10, - "align" : "right", "style" : { "fontFamily" : "Verdana, sans-serif", "fontSize" : "13px" }, + "align" : "right", + "enabled" : "true", "rotation" : -90, + "y" : 10, "format" : "{point.y:.0f}" }, "data" : [ @@ -48,16 +29,35 @@ ], [ "Perl", - 6972 + 6974 ], [ "Raku", - 4194 + 4196 ] - ] + ], + "name" : "Contributions" } ], + "yAxis" : { + "min" : 0, + "title" : { + "text" : null + } + }, + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" + }, + "legend" : { + "enabled" : "false" + }, "title" : { "text" : "The Weekly Challenge Contributions [2019 - 2021]" + }, + "chart" : { + "type" : "column" + }, + "subtitle" : { + "text" : "Last updated at 2021-12-28 16:15:58 GMT" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 5fda562c7d..4a26ed1acd 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,9 +1,749 @@ { - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } + "chart" : { + "type" : "column" + }, + "title" : { + "text" : "The Weekly Challenge Language" + }, + "legend" : { + "enabled" : "false" + }, + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2021-12-28 16:15:58 GMT" }, + "series" : [ + { + "data" : [ + { + "drilldown" : "001", + "name" : "#001", + "y" : 161 + }, + { + "name" : "#002", + "drilldown" : "002", + "y" : 125 + }, + { + "y" : 83, + "name" : "#003", + "drilldown" : "003" + }, + { + "y" : 99, + "name" : "#004", + "drilldown" : "004" + }, + { + "y" : 78, + "drilldown" : "005", + "name" : "#005" + }, + { + "name" : "#006", + "drilldown" : "006", + "y" : 58 + }, + { + "y" : 64, + "name" : "#007", + "drilldown" : "007" + }, + { + "name" : "#008", + "drilldown" : "008", + "y" : 78 + }, + { + "drilldown" : "009", + "name" : "#009", + "y" : 76 + }, + { + "drilldown" : "010", + "name" : "#010", + "y" : 65 + }, + { + "y" : 85, + "drilldown" : "011", + "name" : "#011" + }, + { + "name" : "#012", + "drilldown" : "012", + "y" : 89 + }, + { + "drilldown" : "013", + "name" : "#013", + "y" : 85 + }, + { + "y" : 101, + "drilldown" : "014", + "name" : "#014" + }, + { + "drilldown" : "015", + "name" : "#015", + "y" : 99 + }, + { + "y" : 71, + "drilldown" : "016", + "name" : "#016" + }, + { + "y" : 84, + "name" : "#017", + "drilldown" : "017" + }, + { + "drilldown" : "018", + "name" : "#018", + "y" : 81 + }, + { + "y" : 103, + "name" : "#019", + "drilldown" : "019" + }, + { + "name" : "#020", + "drilldown" : "020", + "y" : 101 + }, + { + "drilldown" : "021", + "name" : "#021", + "y" : 72 + }, + { + "y" : 68, + "name" : "#022", + "drilldown" : "022" + }, + { + "y" : 97, + "drilldown" : "023", + "name" : "#023" + }, + { + "name" : "#024", + "drilldown" : "024", + "y" : 75 + }, + { + "drilldown" : "025", + "name" : "#025", + "y" : 59 + }, + { + "y" : 74, + "name" : "#026", + "drilldown" : "026" + }, + { + "y" : 62, + "drilldown" : "027", + "name" : "#027" + }, + { + "y" : 82, + "drilldown" : "028", + "name" : "#028" + }, + { + "name" : "#029", + "drilldown" : "029", + "y" : 81 + }, + { + "y" : 119, + "drilldown" : "030", + "name" : "#030" + }, + { + "y" : 91, + "name" : "#031", + "drilldown" : "031" + }, + { + "y" : 96, + "name" : "#032", + "drilldown" : "032" + }, + { + "y" : 112, + "drilldown" : "033", + "name" : "#033" + }, + { + "drilldown" : "034", + "name" : "#034", + "y" : 66 + }, + { + "name" : "#035", + "drilldown" : "035", + "y" : 66 + }, + { + "name" : "#036", + "drilldown" : "036", + "y" : 68 + }, + { + "name" : "#037", + "drilldown" : "037", + "y" : 67 + }, + { + "name" : "#038", + "drilldown" : "038", + "y" : 68 + }, + { + "y" : 62, + "drilldown" : "039", + "name" : "#039" + }, + { + "y" : 73, + "drilldown" : "040", + "name" : "#040" + }, + { + "y" : 76, + "name" : "#041", + "drilldown" : "041" + }, + { + "name" : "#042", + "drilldown" : "042", + "y" : 92 + }, + { + "drilldown" : "043", + "name" : "#043", + "y" : 68 + }, + { + "drilldown" : "044", + "name" : "#044", + "y" : 85 + }, + { + "drilldown" : "045", + "name" : "#045", + "y" : 96 + }, + { + "name" : "#046", + "drilldown" : "046", + "y" : 87 + }, + { + "y" : 84, + "drilldown" : "047", + "name" : "#047" + }, + { + "name" : "#048", + "drilldown" : "048", + "y" : 108 + }, + { + "y" : 89, + "name" : "#049", + "drilldown" : "049" + }, + { + "drilldown" : "050", + "name" : "#050", + "y" : 98 + }, + { + "name" : "#051", + "drilldown" : "051", + "y" : 89 + }, + { + "drilldown" : "052", + "name" : "#052", + "y" : 91 + }, + { + "drilldown" : "053", + "name" : "#053", + "y" : 101 + }, + { + "y" : 103, + "name" : "#054", + "drilldown" : "054" + }, + { + "y" : 88, + "name" : "#055", + "drilldown" : "055" + }, + { + "y" : 95, + "name" : "#056", + "drilldown" : "056" + }, + { + "drilldown" : "057", + "name" : "#057", + "y" : 80 + }, + { + "y" : 69, + "name" : "#058", + "drilldown" : "058" + }, + { + "y" : 89, + "name" : "#059", + "drilldown" : "059" + }, + { + "drilldown" : "060", + "name" : "#060", + "y" : 85 + }, + { + "drilldown" : "061", + "name" : "#061", + "y" : 81 + }, + { + "name" : "#062", + "drilldown" : "062", + "y" : 58 + }, + { + "y" : 89, + "name" : "#063", + "drilldown" : "063" + }, + { + "name" : "#064", + "drilldown" : "064", + "y" : 80 + }, + { + "name" : "#065", + "drilldown" : "065", + "y" : 73 + }, + { + "y" : 84, + "drilldown" : "066", + "name" : "#066" + }, + { + "name" : "#067", + "drilldown" : "067", + "y" : 90 + }, + |
