diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-11-30 10:28:58 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-11-30 10:28:58 +0000 |
| commit | 7789fcc51b04021484d9cc67f829492bf7ef9825 (patch) | |
| tree | aee75d767d1265ca1cacc521f9f3d99178ef7bc9 /challenge-193 | |
| parent | f9c1b391fcb02440aa21a9c3a79866db2ba21ff7 (diff) | |
| download | perlweeklychallenge-club-7789fcc51b04021484d9cc67f829492bf7ef9825.tar.gz perlweeklychallenge-club-7789fcc51b04021484d9cc67f829492bf7ef9825.tar.bz2 perlweeklychallenge-club-7789fcc51b04021484d9cc67f829492bf7ef9825.zip | |
- Added solutions by Laurent Rosenfeld.
Diffstat (limited to 'challenge-193')
| -rw-r--r-- | challenge-193/laurent-rosenfeld/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-193/laurent-rosenfeld/perl/ch-1.sh | 4 | ||||
| -rw-r--r-- | challenge-193/laurent-rosenfeld/perl/ch-2.pl | 26 | ||||
| -rw-r--r-- | challenge-193/laurent-rosenfeld/raku/ch-1.sh | 4 | ||||
| -rw-r--r-- | challenge-193/laurent-rosenfeld/raku/ch-2.raku | 22 |
5 files changed, 57 insertions, 0 deletions
diff --git a/challenge-193/laurent-rosenfeld/blog.txt b/challenge-193/laurent-rosenfeld/blog.txt new file mode 100644 index 0000000000..4e7f8d435c --- /dev/null +++ b/challenge-193/laurent-rosenfeld/blog.txt @@ -0,0 +1 @@ +https://blogs.perl.org/users/laurent_r/2022/11/perl-weekly-challenge-193-binary-string-and-odd-string.html diff --git a/challenge-193/laurent-rosenfeld/perl/ch-1.sh b/challenge-193/laurent-rosenfeld/perl/ch-1.sh new file mode 100644 index 0000000000..43ee800832 --- /dev/null +++ b/challenge-193/laurent-rosenfeld/perl/ch-1.sh @@ -0,0 +1,4 @@ +perl -e 'my $c = shift; printf "%0${c}b ", $_ for 0..(2**$c) - 1' 3 +echo +perl -e 'my $c = shift; printf "%0${c}b ", $_ for 0..(2**$c) - 1' 4 +echo diff --git a/challenge-193/laurent-rosenfeld/perl/ch-2.pl b/challenge-193/laurent-rosenfeld/perl/ch-2.pl new file mode 100644 index 0000000000..9e70361837 --- /dev/null +++ b/challenge-193/laurent-rosenfeld/perl/ch-2.pl @@ -0,0 +1,26 @@ +use strict; +use warnings; +use feature qw/say/; +use Data::Dumper; + +sub diff_array { + my $str = shift; + my @diff; + for my $i (1.. length($str) - 1) { + push @diff, + ord(substr($str, $i, 1)) + - ord(substr($str, $i-1, 1)); + } + return "@diff"; +} + +for my $test ([<adc wzy abc>], [<aaa bob ccc ddd>]) { + my %result; + for my $st (@$test) { + push @{$result{diff_array $st}}, $st; + } + # say Dumper \%result; + for my $k (keys %result) { + say "@$test -> ", @{$result{$k}} if scalar @{$result{$k}} == 1; + } +} diff --git a/challenge-193/laurent-rosenfeld/raku/ch-1.sh b/challenge-193/laurent-rosenfeld/raku/ch-1.sh new file mode 100644 index 0000000000..920b00a45d --- /dev/null +++ b/challenge-193/laurent-rosenfeld/raku/ch-1.sh @@ -0,0 +1,4 @@ +raku -e 'sub MAIN ($n) { printf "%03b ", $_ for 0..2**$n-1; }' 3 +echo +raku -e 'sub MAIN ($n) { printf "%03b ", $_ for 0..2**$n-1; }' 4 +echo diff --git a/challenge-193/laurent-rosenfeld/raku/ch-2.raku b/challenge-193/laurent-rosenfeld/raku/ch-2.raku new file mode 100644 index 0000000000..880992a122 --- /dev/null +++ b/challenge-193/laurent-rosenfeld/raku/ch-2.raku @@ -0,0 +1,22 @@ +my %transco = ("a".."z" Z 0..25).flat; # a => 0, b => 1 ... + +sub diff-array ($str) { + my @diff; + for 1..^$str.chars -> $i { + push @diff, + %transco{substr($str, $i, 1)} + - %transco{substr($str, $i-1, 1)}; + } + return @diff; +} + +for <adc wzy abc>, <aaa bob ccc ddd> -> @test { + my %result; + for @test -> $st { + push %result, (diff-array $st) => $st; + } + # say %result; + for %result.keys -> $k { + say @test, " -> ", %result{$k} if %result{$k}.elems == 1; + } +} |
