aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-03-18 00:44:19 +0000
committerGitHub <noreply@github.com>2024-03-18 00:44:19 +0000
commit338788c608102cb08ab7897a4c18eda03bdf1533 (patch)
treee95abbf7bc18c0e534fff05c76831b8d19a8d70d
parent521060f298b5fcf776dd45d82dc046d6e8f4e6cb (diff)
parent250d244ac2cfa2e9c1ac1c72dd8675346136c538 (diff)
downloadperlweeklychallenge-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.txt1
-rwxr-xr-xchallenge-260/jaldhar-h-vyas/perl/ch-1.pl18
-rwxr-xr-xchallenge-260/jaldhar-h-vyas/perl/ch-2.pl39
-rwxr-xr-xchallenge-260/jaldhar-h-vyas/raku/ch-1.raku9
-rwxr-xr-xchallenge-260/jaldhar-h-vyas/raku/ch-2.sh3
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' "$@"