aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-04-28 23:38:32 +0100
committerGitHub <noreply@github.com>2024-04-28 23:38:32 +0100
commit49cda2eafdca5732ec114759ba220e938b3b6919 (patch)
tree0f169df5fc691d9f58a6afb92984c5193032c3bd
parent3bc5427080ecd3401e7cc8db6d7656b30c70465e (diff)
parent7163b94303e25b7f0077258dbed1433e634da57a (diff)
downloadperlweeklychallenge-club-49cda2eafdca5732ec114759ba220e938b3b6919.tar.gz
perlweeklychallenge-club-49cda2eafdca5732ec114759ba220e938b3b6919.tar.bz2
perlweeklychallenge-club-49cda2eafdca5732ec114759ba220e938b3b6919.zip
Merge pull request #10004 from jaldhar/challenge-266
Challenge 266 by Jaldhar H. Vyas.
-rw-r--r--challenge-266/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-266/jaldhar-h-vyas/perl/ch-1.pl21
-rwxr-xr-xchallenge-266/jaldhar-h-vyas/perl/ch-2.pl28
-rwxr-xr-xchallenge-266/jaldhar-h-vyas/raku/ch-1.raku11
-rwxr-xr-xchallenge-266/jaldhar-h-vyas/raku/ch-2.raku30
5 files changed, 91 insertions, 0 deletions
diff --git a/challenge-266/jaldhar-h-vyas/blog.txt b/challenge-266/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..f9b54ddf38
--- /dev/null
+++ b/challenge-266/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2024/04/perl_weekly_challenge_week_266.html
diff --git a/challenge-266/jaldhar-h-vyas/perl/ch-1.pl b/challenge-266/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..6ec212768e
--- /dev/null
+++ b/challenge-266/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,21 @@
+#!/usr/bin/perl
+use v5.38;
+
+sub makeUniqueBag(@array) {
+ my %bag;
+ for my $c (@array) {
+ $bag{$c}++;
+ }
+
+ return grep { $bag{$_} == 1 } keys %bag;
+}
+
+sub symmetricDifference($set1, $set2) {
+ my @all = (@{$set1}, @{$set2});
+ return makeUniqueBag(@all);
+}
+
+my @words1 = makeUniqueBag(split /\s+/, @ARGV[0]);
+my @words2 = makeUniqueBag(split /\s+/, @ARGV[1]);
+
+say q{(}, ((join q{, }, map { "'$_'" } symmetricDifference(\@words1, \@words2)) || "''"), q{)};
diff --git a/challenge-266/jaldhar-h-vyas/perl/ch-2.pl b/challenge-266/jaldhar-h-vyas/perl/ch-2.pl
new file mode 100755
index 0000000000..ef45f0bb42
--- /dev/null
+++ b/challenge-266/jaldhar-h-vyas/perl/ch-2.pl
@@ -0,0 +1,28 @@
+#!/usr/bin/perl
+use v5.38;
+
+sub checkMatrix(@matrix) {
+ my $left = 0;
+ my $right = scalar @{$matrix[0]} - 1;
+
+ for my $row (keys @matrix) {
+ for my $col (keys @{$matrix[$row]}) {
+ if ($col == $left || $col == $right) {
+ if ($matrix[$row][$col] == 0) {
+ return undef;
+ }
+ } else {
+ if ($matrix[$row][$col] != 0) {
+ return undef;
+ }
+ }
+ }
+ $left++;
+ $right--;
+ }
+
+ return 1;
+}
+
+my @matrix = map { [split /\s+/, $_] } @ARGV;
+say checkMatrix(@matrix) ? 'true' : 'false';
diff --git a/challenge-266/jaldhar-h-vyas/raku/ch-1.raku b/challenge-266/jaldhar-h-vyas/raku/ch-1.raku
new file mode 100755
index 0000000000..90c854370b
--- /dev/null
+++ b/challenge-266/jaldhar-h-vyas/raku/ch-1.raku
@@ -0,0 +1,11 @@
+#!/usr/bin/raku
+
+sub MAIN(
+ Str $line1,
+ Str $line2
+) {
+ my @words1 = $line1.words.Bag.grep({ $_.value == 1; }).map({ $_.key });
+ my @words2 = $line2.words.Bag.grep({ $_.value == 1; }).map({ $_.key });
+
+ say q{(}, ((@words1 ⊖ @words2).map({ "'{$_.key}'" }).join(q{, }) || "''"), q{)};
+} \ No newline at end of file
diff --git a/challenge-266/jaldhar-h-vyas/raku/ch-2.raku b/challenge-266/jaldhar-h-vyas/raku/ch-2.raku
new file mode 100755
index 0000000000..98b1b4a93f
--- /dev/null
+++ b/challenge-266/jaldhar-h-vyas/raku/ch-2.raku
@@ -0,0 +1,30 @@
+#!/usr/bin/raku
+
+sub checkMatrix(@matrix) {
+ my $left = 0;
+ my $right = @matrix[0].end;
+
+ for @matrix.keys -> $row {
+ for @matrix[$row].keys -> $col {
+ if $col == $left || $col == $right {
+ if @matrix[$row;$col] == 0 {
+ return False;
+ }
+ } else {
+ if @matrix[$row;$col] != 0 {
+ return False;
+ }
+ }
+ }
+ $left++;
+ $right--;
+ }
+
+ return True;
+}
+
+sub MAIN(
+ *@args
+) {
+ say checkMatrix(@args.map({ [$_.words] }));
+} \ No newline at end of file