From bea8e4fdb5753407b4f3b73d0ef732771b2f65b4 Mon Sep 17 00:00:00 2001 From: "Jaldhar H. Vyas" Date: Sun, 21 Apr 2024 18:50:41 -0400 Subject: Challenge 265 by Jaldhar H. Vyas. --- challenge-265/jaldhar-h-vyas/blog.txt | 1 + challenge-265/jaldhar-h-vyas/perl/ch-1.pl | 12 ++++++++ challenge-265/jaldhar-h-vyas/perl/ch-2.pl | 43 +++++++++++++++++++++++++++++ challenge-265/jaldhar-h-vyas/raku/ch-1.raku | 8 ++++++ challenge-265/jaldhar-h-vyas/raku/ch-2.raku | 8 ++++++ 5 files changed, 72 insertions(+) create mode 100644 challenge-265/jaldhar-h-vyas/blog.txt create mode 100755 challenge-265/jaldhar-h-vyas/perl/ch-1.pl create mode 100755 challenge-265/jaldhar-h-vyas/perl/ch-2.pl create mode 100755 challenge-265/jaldhar-h-vyas/raku/ch-1.raku create mode 100755 challenge-265/jaldhar-h-vyas/raku/ch-2.raku 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({ $_ ~~ .. }).Bag; + @str.grep({ @letters ⊆ $_.comb.Bag }).sort({ $^a.chars <=> $^b.chars }).first.say; +} \ No newline at end of file -- cgit