diff options
| -rw-r--r-- | challenge-265/jaldhar-h-vyas/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-265/jaldhar-h-vyas/perl/ch-1.pl | 12 | ||||
| -rwxr-xr-x | challenge-265/jaldhar-h-vyas/perl/ch-2.pl | 43 | ||||
| -rwxr-xr-x | challenge-265/jaldhar-h-vyas/raku/ch-1.raku | 8 | ||||
| -rwxr-xr-x | challenge-265/jaldhar-h-vyas/raku/ch-2.raku | 8 |
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 |
