aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-256/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-256/jaldhar-h-vyas/perl/ch-1.pl26
-rwxr-xr-xchallenge-256/jaldhar-h-vyas/perl/ch-2.pl28
-rwxr-xr-xchallenge-256/jaldhar-h-vyas/raku/ch-1.sh3
-rwxr-xr-xchallenge-256/jaldhar-h-vyas/raku/ch-2.raku15
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