diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-03-18 00:44:19 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-18 00:44:19 +0000 |
| commit | 338788c608102cb08ab7897a4c18eda03bdf1533 (patch) | |
| tree | e95abbf7bc18c0e534fff05c76831b8d19a8d70d | |
| parent | 521060f298b5fcf776dd45d82dc046d6e8f4e6cb (diff) | |
| parent | 250d244ac2cfa2e9c1ac1c72dd8675346136c538 (diff) | |
| download | perlweeklychallenge-club-338788c608102cb08ab7897a4c18eda03bdf1533.tar.gz perlweeklychallenge-club-338788c608102cb08ab7897a4c18eda03bdf1533.tar.bz2 perlweeklychallenge-club-338788c608102cb08ab7897a4c18eda03bdf1533.zip | |
Merge pull request #9759 from jaldhar/challenge-260
Challenge 260 by Jaldhar H. Vyas.
| -rw-r--r-- | challenge-260/jaldhar-h-vyas/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-260/jaldhar-h-vyas/perl/ch-1.pl | 18 | ||||
| -rwxr-xr-x | challenge-260/jaldhar-h-vyas/perl/ch-2.pl | 39 | ||||
| -rwxr-xr-x | challenge-260/jaldhar-h-vyas/raku/ch-1.raku | 9 | ||||
| -rwxr-xr-x | challenge-260/jaldhar-h-vyas/raku/ch-2.sh | 3 |
5 files changed, 70 insertions, 0 deletions
diff --git a/challenge-260/jaldhar-h-vyas/blog.txt b/challenge-260/jaldhar-h-vyas/blog.txt new file mode 100644 index 0000000000..e878745ab2 --- /dev/null +++ b/challenge-260/jaldhar-h-vyas/blog.txt @@ -0,0 +1 @@ +https://www.braincells.com/perl/2024/03/perl_weekly_challenge_week_260.html diff --git a/challenge-260/jaldhar-h-vyas/perl/ch-1.pl b/challenge-260/jaldhar-h-vyas/perl/ch-1.pl new file mode 100755 index 0000000000..26476298be --- /dev/null +++ b/challenge-260/jaldhar-h-vyas/perl/ch-1.pl @@ -0,0 +1,18 @@ +#!/usr/bin/perl +use 5.030; +use warnings; + +sub unique { + my ($arr) = @_; + my %unique; + for my $elem (@{$arr}) { + $unique{$elem}++; + } + + return keys %unique; +} + +my @ints = @ARGV; +my %count; +map { $count{$_}++ } @ints; +say scalar values %count == scalar unique([values %count]) ? 1 : 0; diff --git a/challenge-260/jaldhar-h-vyas/perl/ch-2.pl b/challenge-260/jaldhar-h-vyas/perl/ch-2.pl new file mode 100755 index 0000000000..d20c2958d9 --- /dev/null +++ b/challenge-260/jaldhar-h-vyas/perl/ch-2.pl @@ -0,0 +1,39 @@ +#!/usr/bin/perl +use 5.030; +use warnings; + +sub permute (&@) { + my $code = shift; + my @idx = 0..$#_; + while ( $code->(@_[@idx]) ) { + my $p = $#idx; + --$p while $idx[$p-1] > $idx[$p]; + my $q = $p or return; + push @idx, reverse splice @idx, $p; + ++$q while $idx[$p-1] > $idx[$q]; + @idx[$p-1,$q]=@idx[$q,$p-1]; + } +} + +sub unique { + my ($arr) = @_; + my %unique; + for my $elem (@{$arr}) { + $unique{$elem}++; + } + + return keys %unique; +} + +my $word = shift; + +my @permutations; +permute { push @permutations, \@_; } (split //, $word); + +my %rank; +my $index = 1; +for my $perm (sort (unique([map { join q{}, @{$_} } @permutations]))) { + $rank{$perm} = $index++; +} + +say $rank{$word}; diff --git a/challenge-260/jaldhar-h-vyas/raku/ch-1.raku b/challenge-260/jaldhar-h-vyas/raku/ch-1.raku new file mode 100755 index 0000000000..190c17114d --- /dev/null +++ b/challenge-260/jaldhar-h-vyas/raku/ch-1.raku @@ -0,0 +1,9 @@ +#!/usr/bin/raku + +sub MAIN( + *@ints +) { + my %count; + @ints.map({ %count{$_}++ }); + say %count.values.elems == %count.values.unique.elems ?? 1 !! 0; +}
\ No newline at end of file diff --git a/challenge-260/jaldhar-h-vyas/raku/ch-2.sh b/challenge-260/jaldhar-h-vyas/raku/ch-2.sh new file mode 100755 index 0000000000..d2db318a34 --- /dev/null +++ b/challenge-260/jaldhar-h-vyas/raku/ch-2.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +raku -e 'say %(@*ARGS[0].comb.permutations.map({$_.join}).sort.unique.kv.reverse){@*ARGS[0]}+1' "$@" |
