diff options
23 files changed, 1902 insertions, 1678 deletions
diff --git a/challenge-190/ulrich-rieke/cpp/ch-1.cpp b/challenge-190/ulrich-rieke/cpp/ch-1.cpp new file mode 100644 index 0000000000..c013223bfe --- /dev/null +++ b/challenge-190/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,22 @@ +#include <iostream> +#include <string> +#include <cctype> +#include <algorithm> + +int main( ) { + std::cout << "Please enter a word!\n" ; + std::string line ; + std::cin >> line ; + if ( (std::isupper( static_cast<int>( line[0] )) && + std::all_of( line.begin( ) + 1 , line.end( ) , []( char c ) + {return std::islower( static_cast<int>( c )) ; } )) || + std::all_of( line.begin( ) , line.end( ) , []( char c ) + { return std::isupper( static_cast<int>( c )) ; }) || + std::all_of( line.begin( ) , line.end( ) , []( char c ) + { return std::islower( static_cast<int>( c )) ; }) ) + std::cout << 1 ; + else + std::cout << 0 ; + std::cout << std::endl ; + return 0 ; +} diff --git a/challenge-190/ulrich-rieke/haskell/ch-1.hs b/challenge-190/ulrich-rieke/haskell/ch-1.hs new file mode 100644 index 0000000000..c058635a08 --- /dev/null +++ b/challenge-190/ulrich-rieke/haskell/ch-1.hs @@ -0,0 +1,7 @@ +module Challenge190 + where +import Data.Char ( isUpper , isLower ) + +solution :: String -> Int +solution input = if (all isUpper input || all isLower input || ( isUpper +( head input ) && all isLower (tail input) )) then 1 else 0 diff --git a/challenge-190/ulrich-rieke/haskell/ch-2.hs b/challenge-190/ulrich-rieke/haskell/ch-2.hs new file mode 100644 index 0000000000..419a3f3f11 --- /dev/null +++ b/challenge-190/ulrich-rieke/haskell/ch-2.hs @@ -0,0 +1,37 @@ +module Challenge190_2 + where +import qualified Data.Set as S +import Data.List ( permutations , sort ) +import Data.List.Split ( divvy ) +import Data.Char ( chr ) + +--find all sublists of 1's and 2's that add up to a given integer +findSublists :: Int -> [[Int]] +findSublists l = [replicate t 2 ++ replicate ( l - 2 * t ) 1 | +t <- [ 0 .. div l 2 ]] + +findAllPermutations :: [[Int]] -> [[Int]] +findAllPermutations list = (S.toList $ S.fromList $ concat $ +map permutations $ filter (\li -> elem 2 li ) list) ++ +[head list] + +findSubstring :: String -> Int -> Int -> String +findSubstring str from to = take ( to - from ) $ drop from str + +findNumberlist :: String -> [Int] -> [Int] +findNumberlist s thePartitions = map read $ map (\li -> findSubstring s +( head li ) ( last li )) $ divvy 2 1 $ scanl ( + ) 0 thePartitions + +findWord :: [Int] -> String +findWord list = if any ( > 26 ) list then "" else map ( chr . (+ 64 )) list + +solution :: String -> [String] +solution number = sort $ filter ( not . null ) $ map findWord $ +map (\li -> findNumberlist number li ) +$ findAllPermutations $ findSublists ( length number ) + +main :: IO ( ) +main = do + putStrLn "Enter a string consisting only of digits!" + numberstring <- getLine + print $ solution numberstring diff --git a/challenge-190/ulrich-rieke/java/Challenge190.java b/challenge-190/ulrich-rieke/java/Challenge190.java new file mode 100644 index 0000000000..7a3eaaadcd --- /dev/null +++ b/challenge-190/ulrich-rieke/java/Challenge190.java @@ -0,0 +1,19 @@ +import java.util.Scanner ; +import java.util.regex.* ; + +public class Challenge190 { + public static void main( String[] args ) { + Scanner sc = new Scanner( System.in ) ; + String reg1 = "^[A-Z][a-z]+$" ; + String reg2 = "^[A-Z]+$" ; + String reg3 = "^[a-z]+$" ; + System.out.println( "Please enter a line consisting of letters only!" ) ; + String line = sc.nextLine( ) ; + if ( line.matches( reg1 ) || line.matches( reg2 ) || line.matches( reg3) ){ + System.out.println( 1 ) ; + } + else { + System.out.println( 0 ) ; + } + } +} diff --git a/challenge-190/ulrich-rieke/perl/ch-1.pl b/challenge-190/ulrich-rieke/perl/ch-1.pl new file mode 100644 index 0000000000..d9250c5a44 --- /dev/null +++ b/challenge-190/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,19 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; + +say "Enter a string consisting of letters only!" ; +my $s = <STDIN> ; +chomp $s ; +while ( $s !~ /^[a-zA-Z]+$/ ) { + say "string must consist of letters only! Re-enter!" ; + $s = <STDIN> ; + chomp $s ; +} +if ( $s =~ /^[A-Z]+$/ || $s =~ /^[a-z]+$/ || $s =~ /^[A-Z][a-z]+$/) { + say 1 ; +} +else { + say 0 ; +} diff --git a/challenge-190/ulrich-rieke/perl/ch-2.pl b/challenge-190/ulrich-rieke/perl/ch-2.pl new file mode 100644 index 0000000000..00c6e88377 --- /dev/null +++ b/challenge-190/ulrich-rieke/perl/ch-2.pl @@ -0,0 +1,68 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; +use Algorithm::Combinatorics qw ( variations_with_repetition ) ; +use List::Util qw ( sum all ) ; + +#this task is about finding all combinations of 1 and 2 that add up +#to the total length of $s , the number that is given at the outset. +#There is a maximum of <length of $s> 1's, admixing as many 2's as +#necessary to find a sum of <length of $s> + +#we compute the maximal number of 2's in all combinations of 1 and 2 +#and the minimum amount of 1's. Their sum is the shortest possible +#array of 1's and 2's that adds up to the given length of $s. The +#maximum length is the length of $s , if the array consists of 1's only +sub findCombinations { + my $length = shift ; + my @nums = ( 1 , 2 ) ; + my @allCombinations ; + my $twos = int( $length / 2 ) ;#maximal number of 2's in the array + my $ones = $length - $twos * 2 ;#minimal number of 1's in the array + for my $l ( ($ones + $twos)..$length ) { + my $iter = variations_with_repetition(\@nums , $l ) ; + while ( my $p = $iter->next ) { + if ( sum( @$p ) == $length ) { + push @allCombinations , $p ; + } + } + } + return @allCombinations ; +} + +#function to convert an array of 1's and 2's to a word +sub arrayToWord { + my $array = shift ; + if ( all { $_ < 27 } @$array ) { + my @letters = map { chr( $_ + 64 ) } @$array ; + return join ('' , @letters ) ; + } + else { + return "" ; + } +} + +say "Enter a number string!" ; +my $s = <STDIN> ; +chomp $s ; +while ( $s !~ /^\d+$/ ) { + say "the string must consist of numbers only! Please re-enter!" ; + $s = <STDIN> ; + chomp $s ; +} +my @allCombinations = findCombinations( length $s ) ; +my @words ; +for my $combi ( @allCombinations ) { + my @digits ; + my $pos = 0 ; + for my $num( @$combi ) { + push @digits , substr( $s , $pos , $num ) ; + $pos += $num ; + } + my $word = arrayToWord( \@digits ) ; + if ( $word ) { + push @words , $word ; + } +} +say join( ',' , sort @words ) ; diff --git a/challenge-190/ulrich-rieke/raku/ch-1.raku b/challenge-190/ulrich-rieke/raku/ch-1.raku new file mode 100644 index 0000000000..cc35fa7531 --- /dev/null +++ b/challenge-190/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,14 @@ +use v6 ; + +say "Please enter a word consisting of letters only!" ; +my $word = $*IN.get ; +while ( $word !~~ /^<[a..zA..Z]>+$/ ) { + say "the word should consist of letters only! Please re-enter!" ; + $word = $*IN.get ; +} +if ( $word ~~ ( /^<[A..Z]>+$/ | /^<[A..Z]><[a..z]>+$/ | /^<[a..z]>+$/ ) ) { + say 1 ; +} +else { + say 0 ; +} diff --git a/challenge-190/ulrich-rieke/rust/ch-1.rs b/challenge-190/ulrich-rieke/rust/ch-1.rs new file mode 100644 index 0000000000..449e0350d1 --- /dev/null +++ b/challenge-190/ulrich-rieke/rust/ch-1.rs @@ -0,0 +1,19 @@ +use std::io ; + +fn main() { + println!("Enter a single word!") ; + let mut inline : String = String::new( ) ; + io::stdin( ).read_line( & mut inline ).unwrap( ) ; + let mut entered_line : &str = &*inline ; + entered_line = entered_line.trim( ) ; + let tailstring : &str = &entered_line[1..] ; + if (entered_line.chars( ).nth( 0 ).unwrap( ).is_uppercase( ) && + tailstring.chars( ).all( | c | c.is_lowercase( ))) || + entered_line.chars( ).all( | c | c.is_lowercase( ) ) || + entered_line.chars( ).all( | c | c.is_uppercase( )) { + println!("1") ; + } + else { + println!("0") ; + } +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 9b83fd70f8..125bd1fce4 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,53 +1,53 @@ { "series" : [ { - "colorByPoint" : 1, "name" : "The Weekly Challenge - 190", + "colorByPoint" : 1, "data" : [ { - "y" : 2, "drilldown" : "Cheok-Yin Fung", - "name" : "Cheok-Yin Fung" + "name" : "Cheok-Yin Fung", + "y" : 2 }, { - "y" : 2, "drilldown" : "E. Choroba", - "name" : "E. Choroba" + "name" : "E. Choroba", + "y" : 2 }, { - "y" : 2, + "name" : "Feng Chang", "drilldown" : "Feng Chang", - "name" : "Feng Chang" + "y" : 2 }, { - "name" : "Humberto Massa", + "y" : 2, "drilldown" : "Humberto Massa", - "y" : 2 + "name" : "Humberto Massa" }, { - "name" : "Luca Ferrari", "drilldown" : "Luca Ferrari", + "name" : "Luca Ferrari", "y" : 8 }, { - "drilldown" : "Mark Anderson", "name" : "Mark Anderson", + "drilldown" : "Mark Anderson", "y" : 1 }, { - "drilldown" : "Marton Polgar", "name" : "Marton Polgar", + "drilldown" : "Marton Polgar", "y" : 2 }, { - "name" : "Peter Campbell Smith", "drilldown" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith", "y" : 3 }, { - "y" : 2, "drilldown" : "Robert DiCicco", - "name" : "Robert DiCicco" + "name" : "Robert DiCicco", + "y" : 2 }, { "name" : "Roger Bell_West", @@ -55,11 +55,16 @@ "y" : 4 }, { - "drilldown" : "Tim Potapov", "name" : "Tim Potapov", + "drilldown" : "Tim Potapov", "y" : 2 }, { + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke", + "y" : 3 + }, + { "y" : 3, "name" : "W. Luis Mochan", "drilldown" : "W. Luis Mochan" @@ -67,48 +72,42 @@ ] } ], - "xAxis" : { - "type" : "category" - }, - "title" : { - "text" : "The Weekly Challenge - 190" + "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/>" }, "yAxis" : { "title" : { "text" : "Total Solutions" } }, - "subtitle" : { - "text" : "[Champions: 12] Last updated at 2022-11-09 20:08:23 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" }, "plotOptions" : { "series" : { - "borderWidth" : 0, "dataLabels" : { "format" : "{point.y}", "enabled" : 1 - } + }, + "borderWidth" : 0 } }, - "legend" : { - "enabled" : 0 + "title" : { + "text" : "The Weekly Challenge - 190" }, "drilldown" : { "series" : [ { "id" : "Cheok-Yin Fung", - "name" : "Cheok-Yin Fung", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Cheok-Yin Fung" }, { "name" : "E. Choroba", @@ -121,27 +120,28 @@ "id" : "E. Choroba" }, { - "id" : "Feng Chang", + "name" : "Feng Chang", "data" : [ [ "Raku", 2 ] ], - "name" : "Feng Chang" + "id" : "Feng Chang" }, { - "id" : "Humberto Massa", + "name" : "Humberto Massa", "data" : [ [ "Raku", 2 ] ], - "name" : "Humberto Massa" + "id" : "Humberto Massa" }, { "name" : "Luca Ferrari", + "id" : "Luca Ferrari", "data" : [ [ "Raku", @@ -151,30 +151,30 @@ "Blog", 6 ] - ], - "id" : "Luca Ferrari" + ] }, { "name" : "Mark Anderson", + "id" : "Mark Anderson", "data" : [ [ "Raku", 1 ] - ], - "id" : "Mark Anderson" + ] }, { + "id" : "Marton Polgar", "data" : [ [ "Raku", 2 ] ], - "name" : "Marton Polgar", - "id" : "Marton Polgar" + "name" : "Marton Polgar" }, { + "name" : "Peter Campbell Smith", "data" : [ [ "Perl", @@ -185,12 +185,11 @@ 1 ] ], - "name" : "Peter Campbell Smith", "id" : "Peter Campbell Smith" }, { - "id" : "Robert DiCicco", "name" : "Robert DiCicco", + "id" : "Robert DiCicco", "data" : [ [ "Perl", @@ -203,7 +202,6 @@ ] }, { - "id" : "Roger Bell_West", "name" : "Roger Bell_West", "data" : [ [ @@ -214,19 +212,35 @@ "Raku", 2 ] - ] + ], + "id" : "Roger Bell_West" }, { - "name" : "Tim Potapov", + "id" : "Tim Potapov", "data" : [ [ "Perl", 2 ] ], - "id" : "Tim Potapov" + "name" : "Tim Potapov" }, { + "name" : "Ulrich Rieke", + "id" : "Ulrich Rieke", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 1 + ] + ] + }, + { + "id" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -237,12 +251,17 @@ 1 ] ], - "name" : "W. Luis Mochan", - "id" : "W. Luis Mochan" + "name" : "W. Luis Mochan" } ] }, + "legend" : { + "enabled" : 0 + }, "chart" : { "type" : "column" + }, + "subtitle" : { + "text" : "[Champions: 13] Last updated at 2022-11-09 20:19:43 GMT" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 3fe1fc5093..5830e254df 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,33 +1,19 @@ { - "chart" : { - "type" : "column" - }, - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" - }, - "legend" : { - "enabled" : "false" - }, - "yAxis" : { - "min" : 0, - "title" : { - "text" : null - } - }, - "subtitle" : { - "text" : "Last updated at 2022-11-09 20:08:23 GMT" - }, - "xAxis" : { - "labels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } - }, - "type" : "category" - }, "series" : [ { + "name" : "Contributions", + "dataLabels" : { + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + }, + "y" : 10, + "align" : "right", + "format" : "{point.y:.0f}", + "rotation" : -90, + "enabled" : "true", + "color" : "#FFFFFF" + }, "data" : [ [ "Blog", @@ -35,29 +21,43 @@ ], [ "Perl", - 9273 + 9275 ], [ "Raku", - 5566 + 5567 ] - ], - "name" : "Contributions", - "dataLabels" : { - "rotation" : -90, - "enabled" : "true", - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - }, - "format" : "{point.y:.0f}", - "y" : 10, - "color" : "#FFFFFF", - "align" : "right" - } + ] } ], + "xAxis" : { + "labels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + } + }, + "type" : "category" + }, + "yAxis" : { + "title" : { + "text" : null + }, + "min" : 0 + }, + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" + }, "title" : { "text" : "The Weekly Challenge Contributions [2019 - 2022]" + }, + "legend" : { + "enabled" : "false" + }, + "chart" : { + "type" : "column" + }, + "subtitle" : { + "text" : "Last updated at 2022-11-09 20:19:43 GMT" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 91f413703a..34017166d7 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,56 +1,64 @@ { - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2022-11-09 20:08:23 GMT" + "tooltip" : { + "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>" + }, + "xAxis" : { + "type" : "category" + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + } + } }, "yAxis" : { "title" : { "text" : "Total Solutions" } }, - "title" : { - "text" : "The Weekly Challenge Language" - }, - "xAxis" : { - "type" : "category" - }, "series" : [ { - "colorByPoint" : "true", + "name" : "The Weekly Challenge Languages", "data" : [ { + "y" : 161, "drilldown" : "001", - "name" : "#001", - "y" : 161 + "name" : "#001" }, { + "y" : 125, "name" : "#002", - "drilldown" : "002", - "y" : 125 + "drilldown" : "002" }, { "y" : 83, - "name" : "#003", - "drilldown" : "003" + "drilldown" : "003", + "name" : "#003" }, { - "drilldown" : "004", "name" : "#004", + "drilldown" : "004", "y" : 99 }, { - "drilldown" : "005", + "y" : 78, "name" : "#005", - "y" : 78 + "drilldown" : "005" }, { - "y" : 58, + "name" : "#006", "drilldown" : "006", - "name" : "#006" + "y" : 58 }, { - "y" : 65, "name" : "#007", - "drilldown" : "007" + "drilldown" : "007", + "y" : 65 }, { "y" : 78, @@ -58,8 +66,8 @@ "name" : "#008" }, { - "drilldown" : "009", "name" : "#009", + "drilldown" : "009", "y" : 76 }, { @@ -73,19 +81,19 @@ "y" : 85 }, { - "name" : "#012", "drilldown" : "012", + "name" : "#012", "y" : 89 }, { - "y" : 85, "name" : "#013", - "drilldown" : "013" + "drilldown" : "013", + "y" : 85 }, { + "y" : 101, "name" : "#014", - "drilldown" : "014", - "y" : 101 + "drilldown" : "014" }, { "y" : 99, @@ -99,53 +107,53 @@ }, { "y" : 84, - "name" : "#017", - "drilldown" : "017" + "drilldown" : "017", + "name" : "#017" }, { "y" : 81, - "name" : "#018", - "drilldown" : "018" + "drilldown" : "018", + "name" : "#018" }, { - "drilldown" : "019", + "y" : 103, "name" : "#019", - "y" : 103 + "drilldown" : "019" }, { + "y" : 101, "drilldown" : "020", - "name" : "#020", - "y" : 101 + "name" : "#020" }, { - "y" : 72, + "drilldown" : "021", "name" : "#021", - "drilldown" : "021" + "y" : 72 }, { - "drilldown" : "022", "name" : "#022", + "drilldown" : "022", "y" : 68 }, { - "name" : "#023", + "y" : 97, "drilldown" : "023", - "y" : 97 + "name" : "#023" }, { - "y" : 75, "name" : "#024", - "drilldown" : "024" + "drilldown" : "024", + "y" : 75 }, { - "y" : 59, + "name" : "#025", "drilldown" : "025", - "name" : "#025" + "y" : 59 }, { "y" : 74, - "name" : "#026", - "drilldown" : "026" + "drilldown" : "026", + "name" : "#026" }, { "y" : 62, @@ -153,8 +161,8 @@ "drilldown" : "027" }, { - "name" : "#028", "drilldown" : "028", + "name" : "#028", "y" : 82 }, { @@ -168,13 +176,13 @@ "drilldown" : "030" }, { - "name" : "#031", + "y" : 91, "drilldown" : "031", - "y" : 91 + "name" : "#031" }, { - "drilldown" : "032", "name" : "#032", + "drilldown" : "032", "y" : 96 }, { @@ -183,13 +191,13 @@ "drilldown" : "033" }, { - "y" : 66, "drilldown" : "034", - "name" : "#034" + "name" : "#034", + "y" : 66 }, { - "drilldown" : "035", "name" : "#035", + "drilldown" : "035", "y" : 66 }, { @@ -198,38 +206,38 @@ "y" : 70 }, { + "y" : 69, "name" : "#037", - "drilldown" : "037", - "y" : 69 + "drilldown" : "037" }, { "y" : 70, - "name" : "#038", - "drilldown" : "038" + "drilldown" : "038", + "name" : "#038" }, { - "y" : 64, + "drilldown" : "039", "name" : "#039", - "drilldown" : "039" + "y" : 64 }, { - "y" : 75, + "name" : "#040", "drilldown" : "040", - "name" : "#040" + "y" : 75 }, { - "name" : "#041", "drilldown" : "041", + "name" : "#041", "y" : 78 }, { - "drilldown" : "042", + "y" : 94, "name" : "#042", - "y" : 94 + "drilldown" : "042" }, { - "drilldown" : "043", "name" : "#043", + "drilldown" : "043", "y" : 70 }, { @@ -238,8 +246,8 @@ "drilldown" : "044" }, { - "drilldown" : "045", "name" : "#045", + "drilldown" : "045", "y" : 98 }, { @@ -248,24 +256,24 @@ "name" : "#046" }, { - "y" : 86, "name" : "#047", - "drilldown" : "047" + "drilldown" : "047", + "y" : 86 }, { "y" : 110, - "name" : "#048", - "drilldown" : "048" + "drilldown" : "048", + "name" : "#048" }, { - "y" : 91, + "drilldown" : "049", "name" : "#049", - "drilldown" : "049" + "y" : 91 }, |
