diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-04-28 23:38:32 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-28 23:38:32 +0100 |
| commit | 49cda2eafdca5732ec114759ba220e938b3b6919 (patch) | |
| tree | 0f169df5fc691d9f58a6afb92984c5193032c3bd | |
| parent | 3bc5427080ecd3401e7cc8db6d7656b30c70465e (diff) | |
| parent | 7163b94303e25b7f0077258dbed1433e634da57a (diff) | |
| download | perlweeklychallenge-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.txt | 1 | ||||
| -rwxr-xr-x | challenge-266/jaldhar-h-vyas/perl/ch-1.pl | 21 | ||||
| -rwxr-xr-x | challenge-266/jaldhar-h-vyas/perl/ch-2.pl | 28 | ||||
| -rwxr-xr-x | challenge-266/jaldhar-h-vyas/raku/ch-1.raku | 11 | ||||
| -rwxr-xr-x | challenge-266/jaldhar-h-vyas/raku/ch-2.raku | 30 |
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 |
