diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-02-13 10:33:55 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-13 10:33:55 +0000 |
| commit | 3b9a221b247412bea4c3b9ede7b74c1de8c07124 (patch) | |
| tree | 60bfe787861043c44f14b829a752fe46b7e2d4fa | |
| parent | e832d04a7553d067af589cc1e33810e2c54f4178 (diff) | |
| parent | b3b1708ce0ddaa70e9c9ba3e38a5d4eae68ac316 (diff) | |
| download | perlweeklychallenge-club-3b9a221b247412bea4c3b9ede7b74c1de8c07124.tar.gz perlweeklychallenge-club-3b9a221b247412bea4c3b9ede7b74c1de8c07124.tar.bz2 perlweeklychallenge-club-3b9a221b247412bea4c3b9ede7b74c1de8c07124.zip | |
Merge pull request #9578 from jaldhar/challenge-256
Challenge 256 by Jaldhar H. Vyas.
| -rw-r--r-- | challenge-256/jaldhar-h-vyas/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-256/jaldhar-h-vyas/perl/ch-1.pl | 26 | ||||
| -rwxr-xr-x | challenge-256/jaldhar-h-vyas/perl/ch-2.pl | 28 | ||||
| -rwxr-xr-x | challenge-256/jaldhar-h-vyas/raku/ch-1.sh | 3 | ||||
| -rwxr-xr-x | challenge-256/jaldhar-h-vyas/raku/ch-2.raku | 15 |
5 files changed, 73 insertions, 0 deletions
diff --git a/challenge-256/jaldhar-h-vyas/blog.txt b/challenge-256/jaldhar-h-vyas/blog.txt new file mode 100644 index 0000000000..5589f1bab9 --- /dev/null +++ b/challenge-256/jaldhar-h-vyas/blog.txt @@ -0,0 +1 @@ +https://www.braincells.com/perl/2024/02/perl_weekly_challenge_week_256.html diff --git a/challenge-256/jaldhar-h-vyas/perl/ch-1.pl b/challenge-256/jaldhar-h-vyas/perl/ch-1.pl new file mode 100755 index 0000000000..e22dcb974e --- /dev/null +++ b/challenge-256/jaldhar-h-vyas/perl/ch-1.pl @@ -0,0 +1,26 @@ +#!/usr/bin/perl +use 5.030; +use warnings; + +sub combinations { + my @list = @{$_[0]}; + my $length = $_[1]; + + if ($length <= 1) { + return map [$_], @list; + } + + my @combos; + + for (my $i = 0; $i + $length <= scalar @list; $i++) { + my $val = $list[$i]; + my @rest = @list[$i + 1 .. $#list]; + for my $c (combinations(\@rest, $length - 1)) { + push @combos, [$val, @{$c}] ; + } + } + + return @combos; +} + +say scalar grep { $_->[0] eq reverse $_->[1] } combinations(\@ARGV, 2); diff --git a/challenge-256/jaldhar-h-vyas/perl/ch-2.pl b/challenge-256/jaldhar-h-vyas/perl/ch-2.pl new file mode 100755 index 0000000000..3299016b12 --- /dev/null +++ b/challenge-256/jaldhar-h-vyas/perl/ch-2.pl @@ -0,0 +1,28 @@ +#!/usr/bin/perl +use 5.030; +use warnings; + +sub Ztilde { + my @a = split //, $_[0]; + my @b = split //, $_[1]; + + my $remainder = q{}; + + if (scalar @a < scalar @b) { + $remainder = join q{}, splice @b, scalar @a; + } elsif (scalar @a > scalar @b) { + $remainder = join q{}, splice @a, scalar @b; + } + + my @result; + for my $i (0 .. scalar @b - 1) { + push @result, $a[$i], $b[$i]; + } + push @result, $remainder; + + return join q{}, @result; +} + +my ($str1, $str2) = @ARGV; + +say Ztilde($str1, $str2); diff --git a/challenge-256/jaldhar-h-vyas/raku/ch-1.sh b/challenge-256/jaldhar-h-vyas/raku/ch-1.sh new file mode 100755 index 0000000000..b3118ae56b --- /dev/null +++ b/challenge-256/jaldhar-h-vyas/raku/ch-1.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +raku -e '@*ARGS.combinations(2).grep({$_[0] eq $_[1].flip}).elems.say' "$@"
\ No newline at end of file diff --git a/challenge-256/jaldhar-h-vyas/raku/ch-2.raku b/challenge-256/jaldhar-h-vyas/raku/ch-2.raku new file mode 100755 index 0000000000..ca853d86c2 --- /dev/null +++ b/challenge-256/jaldhar-h-vyas/raku/ch-2.raku @@ -0,0 +1,15 @@ +#!/usr/bin/raku + +sub MAIN( + Str $str1, + Str $str2 +) { + my $remainder = ''; + + if $str1.chars < $str2.chars { + $remainder = $str2.comb.Array.splice($str1.chars, *).join; + } elsif $str1.chars > $str2.chars { + $remainder = $str1.comb.Array.splice($str2.chars, *).join; + } + say ($str1.comb Z~ $str2.comb).join ~ $remainder; +}
\ No newline at end of file |
