aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-265/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-265/jaldhar-h-vyas/perl/ch-1.pl12
-rwxr-xr-xchallenge-265/jaldhar-h-vyas/perl/ch-2.pl43
-rwxr-xr-xchallenge-265/jaldhar-h-vyas/raku/ch-1.raku8
-rwxr-xr-xchallenge-265/jaldhar-h-vyas/raku/ch-2.raku8
5 files changed, 72 insertions, 0 deletions
diff --git a/challenge-265/jaldhar-h-vyas/blog.txt b/challenge-265/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..c5e9e18a92
--- /dev/null
+++ b/challenge-265/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2024/04/perl_weekly_challenge_week_265.html
diff --git a/challenge-265/jaldhar-h-vyas/perl/ch-1.pl b/challenge-265/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..83683ed226
--- /dev/null
+++ b/challenge-265/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,12 @@
+#!/usr/bin/perl
+use 5.030;
+use warnings;
+
+my @ints = @ARGV;
+
+my %count;
+for my $i (@ints) {
+ $count{$i}++;
+}
+
+say ((grep { $count{$_} / scalar @ints > 0.33 } sort { $a <=> $b} keys %count)[0] // 'undef'); \ No newline at end of file
diff --git a/challenge-265/jaldhar-h-vyas/perl/ch-2.pl b/challenge-265/jaldhar-h-vyas/perl/ch-2.pl
new file mode 100755
index 0000000000..bd85ba3da6
--- /dev/null
+++ b/challenge-265/jaldhar-h-vyas/perl/ch-2.pl
@@ -0,0 +1,43 @@
+#!/usr/bin/perl
+use 5.030;
+use warnings;
+
+sub isSubset {
+ my ($a, $b) = @_;
+
+ for my $k (keys %{$a}) {
+ unless (exists $b->{$k}) {
+ return undef;
+ }
+ if ($a->{$k} > $b->{$k}) {
+ return undef;
+ }
+ }
+
+ return 1;
+}
+
+sub makeBag {
+ my ($array) = @_;
+ my %bag;
+ for my $c (@{$array}) {
+ $bag{$c}++;
+ }
+
+ return %bag;
+}
+
+my ($str, @str) = @ARGV;
+
+my %letters = makeBag([grep { $_ =~ /[a-z]/ } split //, lc $str]);
+
+my @completed;
+
+foreach my $word (@str) {
+ my %wordBag = makeBag([split //, $word]);
+ if (isSubset(\%letters, \%wordBag)) {
+ push @completed, $word;
+ }
+}
+
+say ((sort { length $a <=> length $b } @completed)[0]); \ No newline at end of file
diff --git a/challenge-265/jaldhar-h-vyas/raku/ch-1.raku b/challenge-265/jaldhar-h-vyas/raku/ch-1.raku
new file mode 100755
index 0000000000..5714049cf9
--- /dev/null
+++ b/challenge-265/jaldhar-h-vyas/raku/ch-1.raku
@@ -0,0 +1,8 @@
+#!/usr/bin/raku
+
+sub MAIN(
+ *@ints
+) {
+ @ints.classify( { $_}, :into(my %count));
+ %count.keys.sort.grep({ %count{$_}.elems / @ints.elems > 0.33 }).first.say;
+} \ No newline at end of file
diff --git a/challenge-265/jaldhar-h-vyas/raku/ch-2.raku b/challenge-265/jaldhar-h-vyas/raku/ch-2.raku
new file mode 100755
index 0000000000..67a5a60108
--- /dev/null
+++ b/challenge-265/jaldhar-h-vyas/raku/ch-2.raku
@@ -0,0 +1,8 @@
+#!/usr/bin/raku
+
+sub MAIN(
+ $str, *@str
+) {
+ my @letters = $str.lc.comb.grep({ $_ ~~ <a> .. <z> }).Bag;
+ @str.grep({ @letters ⊆ $_.comb.Bag }).sort({ $^a.chars <=> $^b.chars }).first.say;
+} \ No newline at end of file