diff options
| author | Mohammad Sajid Anwar <mohammad.anwar@yahoo.com> | 2024-08-12 14:58:54 +0100 |
|---|---|---|
| committer | Mohammad Sajid Anwar <mohammad.anwar@yahoo.com> | 2024-08-12 14:58:54 +0100 |
| commit | 7d94e5811f0f86d22b604b3cd678b0125d39570a (patch) | |
| tree | 2653b2e29d1cd19138226548e7cdcc24581e56a7 | |
| parent | 3a7c7b9c0de30f21dcbe02dc84f908fe6ac72365 (diff) | |
| download | perlweeklychallenge-club-7d94e5811f0f86d22b604b3cd678b0125d39570a.tar.gz perlweeklychallenge-club-7d94e5811f0f86d22b604b3cd678b0125d39570a.tar.bz2 perlweeklychallenge-club-7d94e5811f0f86d22b604b3cd678b0125d39570a.zip | |
- Added solutions by Ulrich Rieke.
32 files changed, 2522 insertions, 2323 deletions
diff --git a/challenge-282/ulrich-rieke/cpp/ch-1.cpp b/challenge-282/ulrich-rieke/cpp/ch-1.cpp new file mode 100755 index 0000000000..aceb6a89fa --- /dev/null +++ b/challenge-282/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,25 @@ +#include <iostream>
+#include <vector>
+#include <algorithm>
+#include <string>
+
+int main( ) {
+ std::cout << "Enter a long string consisting of digits only!\n" ;
+ std::string number ;
+ std::cin >> number ;
+ std::vector<std::string> triplets , selected ;
+ int pos = 0 ;
+ while ( pos < number.length( ) - 2 ) {
+ triplets.push_back( number.substr( pos , 3 ) ) ;
+ pos++ ;
+ }
+ std::copy_if( triplets.begin( ) , triplets.end( ) ,
+ std::back_inserter( selected ) , []( const auto & s ) {
+ return s.at( 0 ) == s.at( 1 ) && s.at( 1 ) == s.at( 2 ) ; } ) ;
+ if ( selected.size( ) == 0 )
+ std::cout << -1 << '\n' ;
+ else
+ std::cout << selected[0].substr( 0 , 1 ) << '\n' ;
+ return 0 ;
+}
+
diff --git a/challenge-282/ulrich-rieke/cpp/ch-2.cpp b/challenge-282/ulrich-rieke/cpp/ch-2.cpp new file mode 100755 index 0000000000..e60fe3f932 --- /dev/null +++ b/challenge-282/ulrich-rieke/cpp/ch-2.cpp @@ -0,0 +1,29 @@ +#include <iostream>
+#include <string>
+#include <cctype>
+#include <algorithm>
+#include <vector>
+
+std::string to_lower( std::string aWord ) {
+ std::transform( aWord.begin( ) , aWord.end( ) , aWord.begin( ) ,
+ tolower ) ;
+ return aWord ;
+}
+
+int main( ) {
+ std::cout << "Please enter an alphabetic word!\n" ;
+ std::string word ;
+ std::cin >> word ;
+ int pos = 0 ;
+ std::vector<std::string> pairs ;
+ while ( pos < word.length( ) - 2 ) {
+ pairs.push_back( word.substr( pos , 2 ) ) ;
+ pairs.push_back( word.substr( pos + 1 , 2 ) ) ;
+ pos += 2 ;
+ }
+ std::transform( pairs.begin( ) , pairs.end( ) , pairs.begin( ) ,
+ to_lower ) ;
+ std::cout << std::count_if( pairs.begin( ) , pairs.end( ) , []( const
+ auto & s ) { return s.at( 0 ) != s.at( 1 ) ; }) << '\n' ;
+ return 0 ;
+}
diff --git a/challenge-282/ulrich-rieke/haskell/ch-1.hs b/challenge-282/ulrich-rieke/haskell/ch-1.hs new file mode 100755 index 0000000000..9377af7d12 --- /dev/null +++ b/challenge-282/ulrich-rieke/haskell/ch-1.hs @@ -0,0 +1,16 @@ +module Challenge282
+ where
+import Data.List.Split ( divvy )
+import Data.Char ( digitToInt )
+import Data.List ( group )
+
+solution :: String -> Int
+solution s = if null grouped then -1 else digitToInt $ head $ head grouped
+ where
+ grouped = filter (\gr -> length gr == 3 ) $ group s
+
+main :: IO ( )
+main = do
+ putStrLn "Enter a string consisting of digits only!"
+ numberstring <- getLine
+ print $ solution numberstring
diff --git a/challenge-282/ulrich-rieke/haskell/ch-2.hs b/challenge-282/ulrich-rieke/haskell/ch-2.hs new file mode 100755 index 0000000000..617c6f1884 --- /dev/null +++ b/challenge-282/ulrich-rieke/haskell/ch-2.hs @@ -0,0 +1,8 @@ +module Challenge282_2
+ where
+import Data.List.Split ( divvy )
+import Data.Char ( toLower )
+
+solution :: String -> Int
+solution s = length $ filter (\w -> head w /= last w ) $ map ( map toLower)
+ $ divvy 2 1 s
diff --git a/challenge-282/ulrich-rieke/perl/ch-1.pl b/challenge-282/ulrich-rieke/perl/ch-1.pl new file mode 100755 index 0000000000..4416abccc6 --- /dev/null +++ b/challenge-282/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,23 @@ +#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+
+say "Enter a long integer!" ;
+my $number = <STDIN> ;
+chomp $number ;
+my $pos = 0 ;
+my @triplets ;
+my @selected ;
+while ( $pos < length( $number ) - 2 ) {
+ push( @triplets , substr( $number , $pos , 3 ) ) ;
+ $pos += 1 ;
+}
+@selected = grep { substr( $_ , 0 , 1 ) eq substr( $_ , 1 , 1 ) &&
+ substr( $_ , 1 , 1 ) eq substr( $_ , 2 , 1 ) } @triplets ;
+if ( scalar( @selected ) > 0 ) {
+ say substr( $selected[0] , 0 , 1 ) ;
+}
+else {
+ say -1 ;
+}
diff --git a/challenge-282/ulrich-rieke/perl/ch-2.pl b/challenge-282/ulrich-rieke/perl/ch-2.pl new file mode 100755 index 0000000000..f972680dd4 --- /dev/null +++ b/challenge-282/ulrich-rieke/perl/ch-2.pl @@ -0,0 +1,19 @@ +#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+
+say "Enter an alphabetic string!" ;
+my $word = <STDIN> ;
+chomp $word ;
+#create pairs of neighbouring characters , convert them to either uppercase
+#or lowercase and count the number of pairs with unequal letters
+my @pairs ;
+my $pos = 0 ;
+while ( $pos < length( $word ) - 2 ) {
+ push( @pairs , substr( $word , $pos , 2 ) ) ;
+ push( @pairs , substr( $word , $pos + 1 , 2 )) ;
+ $pos += 2 ;
+}
+say scalar( grep { substr( $_ , 0 , 1 ) ne substr( $_ , 1 , 1 ) } map {
+join ( '' , map { lc } split( // , $_ )) } @pairs ) ;
diff --git a/challenge-282/ulrich-rieke/raku/ch-1.raku b/challenge-282/ulrich-rieke/raku/ch-1.raku new file mode 100755 index 0000000000..64d0973ff6 --- /dev/null +++ b/challenge-282/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,12 @@ +use v6 ;
+
+say "Enter a long integer!" ;
+my $number = $*IN.get ;
+my @triplets = $number.comb.rotor( 3 => -2 ) ;
+my @selected = @triplets.grep( { $_[0] eq $_[1] && $_[1] eq $_[2] } ) ;
+if ( @selected.elems == 0 ) {
+ say -1 ;
+}
+else {
+ say @selected[0][0] ;
+}
diff --git a/challenge-282/ulrich-rieke/raku/ch-2.raku b/challenge-282/ulrich-rieke/raku/ch-2.raku new file mode 100755 index 0000000000..7f98446273 --- /dev/null +++ b/challenge-282/ulrich-rieke/raku/ch-2.raku @@ -0,0 +1,9 @@ +use v6 ;
+
+say "Enter an alphabetic string!" ;
+my $word = $*IN.get ;
+#we create pairs of neighbouring letters and convert every member of these
+#pairs into lowercase letters. After that , we count the pairs with
+#unequal letters
+say $word.comb.rotor( 2 => -1 ).map( {$_.map( {.lc} ) } ).grep( {$_[0] ne
+ $_[1] } ).elems ;
diff --git a/challenge-282/ulrich-rieke/rust/ch-1.rs b/challenge-282/ulrich-rieke/rust/ch-1.rs new file mode 100755 index 0000000000..3b013ef45f --- /dev/null +++ b/challenge-282/ulrich-rieke/rust/ch-1.rs @@ -0,0 +1,19 @@ +use std::io ; + +fn main() { + println!("Enter a long integer!"); + let mut inline : String = String::new( ) ; + io::stdin( ).read_line( &mut inline ).unwrap( ) ; + let entered_line : &str = inline.as_str( ).trim( ) ; + let my_chars : Vec<char> = entered_line.chars( ).collect( ) ; + let my_slice = &my_chars[..] ; + let triplets : Vec<_> = my_slice.windows( 3 ).collect( ) ; + let selected : Vec<_> = triplets.into_iter( ).filter( | &vec | + vec[0] == vec[1] && vec[1] == vec[2] ).collect( ) ; + if selected.len( ) == 0 { + println!("-1" ) ; + } + else { + println!("{}" , selected[0].get( 0 ).unwrap( ) ) ; + } +} diff --git a/challenge-282/ulrich-rieke/rust/ch-2.rs b/challenge-282/ulrich-rieke/rust/ch-2.rs new file mode 100755 index 0000000000..145b3518ba --- /dev/null +++ b/challenge-282/ulrich-rieke/rust/ch-2.rs @@ -0,0 +1,20 @@ +use std::io ; + +fn main() { + println!("Enter an alphabetic string!"); + let mut inline : String = String::new( ) ; + io::stdin( ).read_line( & mut inline ).unwrap( ) ; + let entered_line : &str = inline.as_str( ).trim( ) ; + let letters : Vec<char> = entered_line.chars( ).collect( ) ; + let letterslice = &letters[..] ; + let mut count : u8 = 0 ; + let mut iter = letterslice.windows( 2 ) ; + while let Some( pair ) = iter.next( ) { + let first_char : char = pair[0].to_ascii_lowercase( ) ; + let second_char : char = pair[1].to_ascii_lowercase( ) ; + if first_char != second_char { + count += 1 ; + } + } + println!("{}" , count ) ; +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index c2db945a14..680ff402f1 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,59 +1,81 @@ { - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "xAxis" : { - "type" : "category" + "chart" : { + "type" : "column" }, "legend" : { "enabled" : 0 }, + "series" : [ + { + "colorByPoint" : 1, + "data" : [ + { + "drilldown" : "Feng Chang", + "name" : "Feng Chang", + "y" : 2 + }, + { + "y" : 2, + "drilldown" : "Mark Anderson", + "name" : "Mark Anderson" + }, + { + "drilldown" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith", + "y" : 3 + }, + { + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke", + "y" : 4 + }, + { + "y" : 3, + "name" : "W. Luis Mochan", + "drilldown" : "W. Luis Mochan" + } + ], + "name" : "The Weekly Challenge - 282" + } + ], "plotOptions" : { "series" : { "borderWidth" : 0, "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 + "enabled" : 1, + "format" : "{point.y}" } } }, - "tooltip" : { - "followPointer" : 1, - "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", - "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>" + "xAxis" : { + "type" : "category" }, "title" : { "text" : "The Weekly Challenge - 282" }, - "chart" : { - "type" : "column" - }, "drilldown" : { "series" : [ { - "id" : "Feng Chang", "name" : "Feng Chang", "data" : [ [ "Raku", 2 ] - ] + ], + "id" : "Feng Chang" }, { + "id" : "Mark Anderson", "data" : [ [ "Raku", 2 ] ], - "id" : "Mark Anderson", "name" : "Mark Anderson" }, { - "name" : "Peter Campbell Smith", "id" : "Peter Campbell Smith", "data" : [ [ @@ -64,7 +86,22 @@ "Blog", 1 ] - ] + ], + "name" : "Peter Campbell Smith" + }, + { + "name" : "Ulrich Rieke", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ], + "id" : "Ulrich Rieke" }, { "data" : [ @@ -82,35 +119,17 @@ } ] }, + "tooltip" : { + "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>", + "followPointer" : 1, + "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>" + }, "subtitle" : { - "text" : "[Champions: 4] Last updated at 2024-08-12 12:21:11 GMT" + "text" : "[Champions: 5] Last updated at 2024-08-12 13:58:48 GMT" }, - "series" : [ - { - "data" : [ - { - "drilldown" : "Feng Chang", - "name" : "Feng Chang", - "y" : 2 - }, - { - "name" : "Mark Anderson", - "drilldown" : "Mark Anderson", - "y" : 2 - }, - { - "y" : 3, - "drilldown" : "Peter Campbell Smith", - "name" : "Peter Campbell Smith" - }, - { - "y" : 3, - "drilldown" : "W. Luis Mochan", - "name" : "W. Luis Mochan" - } - ], - "colorByPoint" : 1, - "name" : "The Weekly Challenge - 282" + "yAxis" : { + "title" : { + "text" : "Total Solutions" } - ] + } } diff --git a/stats/pwc-language-breakdown-2019.json b/stats/pwc-language-breakdown-2019.json index c050db46f5..7a2085112d 100644 --- a/stats/pwc-language-breakdown-2019.json +++ b/stats/pwc-language-breakdown-2019.json @@ -1,10 +1,19 @@ { + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } + }, + "xAxis" : { + "type" : "category" + }, "title" : { "text" : "The Weekly Challenge Language" }, - "chart" : { - "type" : "column" - }, "drilldown" : { "series" : [ { @@ -22,10 +31,11 @@ 9 ] ], - "name" : "041", - "id" : "041" + "id" : "041", + "name" : "041" }, { + "id" : "040", "data" : [ [ "Perl", @@ -40,12 +50,9 @@ 10 ] ], - "id" : "040", "name" : "040" }, { - "name" : "039", - "id" : "039", "data" : [ [ "Perl", @@ -59,7 +66,9 @@ "Blog", 12 ] - ] + ], + "id" : "039", + "name" : "039" }, { "data" : [ @@ -76,11 +85,10 @@ 12 ] ], - "name" : "038", - "id" : "038" + "id" : "038", + "name" : "038" }, { - "name" : "037", "id" : "037", "data" : [ [ @@ -95,11 +103,12 @@ "Blog", 9 ] - ] + ], + "name" : "037" }, { - "id" : "036", "name" : "036", + "id" : "036", "data" : [ [ "Perl", @@ -130,8 +139,8 @@ 9 ] ], - "name" : "035", - "id" : "035" + "id" : "035", + "name" : "035" }, { "data" : [ @@ -148,11 +157,10 @@ 11 ] ], - "name" : "034", - "id" : "034" + "id" : "034", + "name" : "034" }, { - "id" : "033", "name" : "033", "data" : [ [ @@ -167,7 +175,8 @@ "Blog", 10 ] - ] + ], + "id" : "033" }, { "data" : [ @@ -184,10 +193,11 @@ 10 ] ], - "name" : "032", - "id" : "032" + "id" : "032", + "name" : "032" }, { + "id" : "031", "data" : [ [ "Perl", @@ -202,10 +212,10 @@ 9 ] ], - "name" : "031", - "id" : "031" + "name" : "031" }, { + "id" : "030", "data" : [ [ "Perl", @@ -220,11 +230,9 @@ 10 ] ], - "name" : "030", - "id" : "030" + "name" : "030" }, { - "id" : "029", "name" : "029", "data" : [ [ @@ -239,11 +247,11 @@ "Blog", 12 ] - ] + ], + "id" : "029" }, { "name" : "028", - "id" : "028", "data" : [ [ "Perl", @@ -257,9 +265,11 @@ "Blog", 9 ] - ] + ], + "id" : "028" }, { + "name" : "027", "data" : [ [ "Perl", @@ -274,12 +284,10 @@ 9 ] ], - "name" : "027", "id" : "027" }, { "name" : "026", - "id" : "026", "data" : [ [ "Perl", @@ -293,7 +301,8 @@ "Blog", 10 ] - ] + ], + "id" : "026" }, { "data" : [ @@ -310,8 +319,8 @@ 12 ] ], - "name" : "025", - "id" : "025" + "id" : "025", + "name" : "025" }, { "name" : "024", @@ -350,6 +359,8 @@ "name" : "023" }, { + "name" : "022", + "id" : "022", "data" : [ [ "Perl", @@ -363,9 +374,7 @@ "Blog", 10 ] - ], - "id" : "022", - "name" : "022" + ] }, { "data" : [ @@ -386,8 +395,6 @@ "name" : "021" }, { - "id" : "020", - "name" : "020", "data" : [ [ "Perl", @@ -401,10 +408,11 @@ "Blog", 13 ] - ] + ], + "id" : "020", + "name" : "020" }, { - "id" : "019", "name" : "019", "data" : [ [ @@ -419,10 +427,10 @@ "Blog", 13 ] - ] + ], + "id" : "019" }, { - "name" : "018", "id" : "018", "data" : [ [ @@ -437,11 +445,10 @@ "Blog", 14 ] - ] + ], + "name" : "018" }, { - "name" : "017", - "id" : "017", "data" : [ [ "Perl", @@ -455,11 +462,11 @@ "Blog", 12 ] - ] + ], + "id" : "017", + "name" : "017" }, { - "name" : "016", - "id" : "016", "data" : [ [ "Perl", @@ -473,9 +480,12 @@ "Blog", 13 ] - ] + ], + "id" : "016", + "name" : "016" }, { + "name" : "015", "data" : [ [ "Perl", @@ -490,10 +500,10 @@ 15 ] ], - "name" : "015", "id" : "015" }, { + "name" : "014", "data" : [ [ "Perl", @@ -508,10 +518,10 @@ 15 ] ], - "id" : "014", - "name" : "014" + "id" : "014" }, { + "id" : "013", "data" : [ [ "Perl", @@ -526,10 +536,10 @@ 13 ] ], - "id" : "013", "name" : "013" }, { + "name" : "012", "data" : [ [ "Perl", @@ -544,7 +554,6 @@ 11 ] ], - "name" : "012", "id" : "012" }, { @@ -562,12 +571,11 @@ 10 ] ], - "name" : "011", - "id" : "011" + "id" : "011", + "name" : "011" }, { "id" : "010", - "name" : "010", "data" : [ [ "Perl", @@ -581,9 +589,12 @@ "Blog", 11 ] - ] + ], + "name" : "010" }, { + "name" : "009", + "id" : "009", "data" : [ [ "Perl", @@ -597,13 +608,11 @@ "Blog", 13 ] - ], - "id" : "009", - "name" : "009" + ] }, { - "id" : "008", "name" : "008", + "id" : "008", "data" : [ [ "Perl", @@ -620,8 +629,8 @@ ] }, { - "id" : "007", "name" : "007", + "id" : "007", "data" : [ [ "Perl", @@ -638,6 +647,8 @@ ] }, { + "name" : "006", + "id" : "006", "data" : [ [ "Perl", @@ -651,13 +662,10 @@ "Blog", 7 ] - ], - "name" : "006", - "id" : "006" + ] }, { "id" : "005", - "name" : "005", "data" : [ [ "Perl", @@ -671,9 +679,11 @@ "Blog", 12 ] - ] + ], + "name" : "005" }, { + "name" : "004", "data" : [ [ "Perl", @@ -688,8 +698,7 @@ 10 ] ], - "id" : "004", - "name" : "004" + "id" : "004" }, { "data" : [ @@ -706,8 +715,8 @@ 9 ] ], - "name" : "003", - "id" : "003" + "id" : "003", + "name" : "003" }, { "name" : "002", @@ -728,6 +737,7 @@ ] }, { + "name" : "001", "data" : [ [ "Perl", @@ -742,11 +752,26 @@ 12 ] |
