diff options
| author | arnesom <arne@bbop.org> | 2023-10-21 15:10:05 +0200 |
|---|---|---|
| committer | arnesom <arne@bbop.org> | 2023-10-21 15:10:05 +0200 |
| commit | 23466f2fd302a570458df9463c86f0becc5b8e62 (patch) | |
| tree | 1050248fdca5492e560f2025c7b269f783a1de41 /challenge-239 | |
| parent | a1835fd1a935b02d48de48ef8242136522a540b4 (diff) | |
| download | perlweeklychallenge-club-23466f2fd302a570458df9463c86f0becc5b8e62.tar.gz perlweeklychallenge-club-23466f2fd302a570458df9463c86f0becc5b8e62.tar.bz2 perlweeklychallenge-club-23466f2fd302a570458df9463c86f0becc5b8e62.zip | |
Arne Sommer
Diffstat (limited to 'challenge-239')
| -rw-r--r-- | challenge-239/arne-sommer/blog.txt | 2 | ||||
| -rwxr-xr-x | challenge-239/arne-sommer/raku/ch-1.raku | 7 | ||||
| -rwxr-xr-x | challenge-239/arne-sommer/raku/ch-2.raku | 14 | ||||
| -rwxr-xr-x | challenge-239/arne-sommer/raku/consistent-string | 14 | ||||
| -rwxr-xr-x | challenge-239/arne-sommer/raku/consistent-string-verbose | 25 | ||||
| -rwxr-xr-x | challenge-239/arne-sommer/raku/same-string | 7 | ||||
| -rwxr-xr-x | challenge-239/arne-sommer/raku/same-string-shuffle | 17 | ||||
| -rwxr-xr-x | challenge-239/arne-sommer/raku/same-string-verbose | 22 |
8 files changed, 108 insertions, 0 deletions
diff --git a/challenge-239/arne-sommer/blog.txt b/challenge-239/arne-sommer/blog.txt new file mode 100644 index 0000000000..cc1c865398 --- /dev/null +++ b/challenge-239/arne-sommer/blog.txt @@ -0,0 +1,2 @@ +https://raku-musings.com/nothing-but-strings.html + diff --git a/challenge-239/arne-sommer/raku/ch-1.raku b/challenge-239/arne-sommer/raku/ch-1.raku new file mode 100755 index 0000000000..9efc2e8564 --- /dev/null +++ b/challenge-239/arne-sommer/raku/ch-1.raku @@ -0,0 +1,7 @@ +#! /usr/bin/env raku + +unit sub MAIN ($arr1, $arr2); + +say $arr1.words.join eq $arr2.words.join + ?? 'true' + !! 'false'; diff --git a/challenge-239/arne-sommer/raku/ch-2.raku b/challenge-239/arne-sommer/raku/ch-2.raku new file mode 100755 index 0000000000..91bed81c71 --- /dev/null +++ b/challenge-239/arne-sommer/raku/ch-2.raku @@ -0,0 +1,14 @@ +#! /usr/bin/env raku + +unit sub MAIN ($allowed, *@str where @str.elems > 0); + +my @allow-canonical = $allowed.comb; + +my $consistent = 0; + +for @str -> $str +{ + $consistent++ if $str.comb.unique (<=) @allow-canonical; +} + +say $consistent; diff --git a/challenge-239/arne-sommer/raku/consistent-string b/challenge-239/arne-sommer/raku/consistent-string new file mode 100755 index 0000000000..91bed81c71 --- /dev/null +++ b/challenge-239/arne-sommer/raku/consistent-string @@ -0,0 +1,14 @@ +#! /usr/bin/env raku + +unit sub MAIN ($allowed, *@str where @str.elems > 0); + +my @allow-canonical = $allowed.comb; + +my $consistent = 0; + +for @str -> $str +{ + $consistent++ if $str.comb.unique (<=) @allow-canonical; +} + +say $consistent; diff --git a/challenge-239/arne-sommer/raku/consistent-string-verbose b/challenge-239/arne-sommer/raku/consistent-string-verbose new file mode 100755 index 0000000000..9577a391c3 --- /dev/null +++ b/challenge-239/arne-sommer/raku/consistent-string-verbose @@ -0,0 +1,25 @@ +#! /usr/bin/env raku + +unit sub MAIN ($allowed, *@str where @str.elems > 0, :v(:$verbose)); + +my @allow-canonical = $allowed.comb; + +my $consistent = 0; + +for @str -> $str +{ + my @str-canonical = $str.comb.unique; + + if @str-canonical (<=) @allow-canonical + { + $consistent++; + say ": + $str - consistent" if $verbose; + } + elsif $verbose + { + say ": - $str" if $verbose; + + } +} + +say $consistent; diff --git a/challenge-239/arne-sommer/raku/same-string b/challenge-239/arne-sommer/raku/same-string new file mode 100755 index 0000000000..9efc2e8564 --- /dev/null +++ b/challenge-239/arne-sommer/raku/same-string @@ -0,0 +1,7 @@ +#! /usr/bin/env raku + +unit sub MAIN ($arr1, $arr2); + +say $arr1.words.join eq $arr2.words.join + ?? 'true' + !! 'false'; diff --git a/challenge-239/arne-sommer/raku/same-string-shuffle b/challenge-239/arne-sommer/raku/same-string-shuffle new file mode 100755 index 0000000000..b9d2a32ea8 --- /dev/null +++ b/challenge-239/arne-sommer/raku/same-string-shuffle @@ -0,0 +1,17 @@ +#! /usr/bin/env raku + +unit sub MAIN ($arr1, $arr2); + +for $arr1.words.permutations>>.join.unique -> $first +{ + for $arr2.words.permutations>>.join.unique -> $second + { + if $first eq $second + { + say 'true'; + exit; + } + } +} + +say 'false'; diff --git a/challenge-239/arne-sommer/raku/same-string-verbose b/challenge-239/arne-sommer/raku/same-string-verbose new file mode 100755 index 0000000000..8dc1a929c5 --- /dev/null +++ b/challenge-239/arne-sommer/raku/same-string-verbose @@ -0,0 +1,22 @@ +#! /usr/bin/env raku + +unit sub MAIN ($arr1, $arr2, :v(:$verbose)); + +for $arr1.words.permutations -> @first +{ + for $arr2.words.permutations -> @second + { + if @first.join eq @second.join + { + say ": { @first.map({ "\"$_\"" }).join(" ") } === { @second.map({ "\"$_\"" }).join(" ") }" if $verbose; + say 'true'; + exit; + } + elsif $verbose + { + say ": { @first.map({ "\"$_\"" }).join(" ") } =!= { @second.map({ "\"$_\"" }).join(" ") }"; + } + } +} + +say 'false'; |
