diff options
| -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 |
