diff options
| author | Jaldhar H. Vyas <jaldhar@braincells.com> | 2025-10-26 18:57:05 -0400 |
|---|---|---|
| committer | Jaldhar H. Vyas <jaldhar@braincells.com> | 2025-10-26 19:27:25 -0400 |
| commit | be9cb47d720992837252adf06cf80df7ad09c80d (patch) | |
| tree | fc066ac86e9c4aeba1f0947497950af89def198e | |
| parent | c9375e027adb21f7c8a3b419d423d8c2f7c202d8 (diff) | |
| download | perlweeklychallenge-club-be9cb47d720992837252adf06cf80df7ad09c80d.tar.gz perlweeklychallenge-club-be9cb47d720992837252adf06cf80df7ad09c80d.tar.bz2 perlweeklychallenge-club-be9cb47d720992837252adf06cf80df7ad09c80d.zip | |
Challenge 344 by Jaldhar H. Vyas.
| -rw-r--r-- | challenge-344/jaldhar-h-vyas/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-344/jaldhar-h-vyas/perl/ch-1.sh | 3 | ||||
| -rwxr-xr-x | challenge-344/jaldhar-h-vyas/perl/ch-2.pl | 48 | ||||
| -rwxr-xr-x | challenge-344/jaldhar-h-vyas/raku/ch-1.sh | 3 | ||||
| -rwxr-xr-x | challenge-344/jaldhar-h-vyas/raku/ch-2.raku | 20 |
5 files changed, 75 insertions, 0 deletions
diff --git a/challenge-344/jaldhar-h-vyas/blog.txt b/challenge-344/jaldhar-h-vyas/blog.txt new file mode 100644 index 0000000000..41630d982e --- /dev/null +++ b/challenge-344/jaldhar-h-vyas/blog.txt @@ -0,0 +1 @@ +https://www.braincells.com/perl/2025/10/perl_weekly_challenge_week_344.html diff --git a/challenge-344/jaldhar-h-vyas/perl/ch-1.sh b/challenge-344/jaldhar-h-vyas/perl/ch-1.sh new file mode 100755 index 0000000000..71975a62cc --- /dev/null +++ b/challenge-344/jaldhar-h-vyas/perl/ch-1.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +perl -E 'my $x=shift @ARGV;say q{(},(join q{, },(split //,($x+join q{}, @ARGV))),q{)}' "$@" diff --git a/challenge-344/jaldhar-h-vyas/perl/ch-2.pl b/challenge-344/jaldhar-h-vyas/perl/ch-2.pl new file mode 100755 index 0000000000..6ac716259c --- /dev/null +++ b/challenge-344/jaldhar-h-vyas/perl/ch-2.pl @@ -0,0 +1,48 @@ +#!/usr/bin/perl +use 5.038; +use builtin qw/ true false /; +use warnings; +no warnings qw/ experimental::builtin /; + +sub permute(@arr) { + my @permutations; + + if (scalar @arr eq 1) { + return (\@arr); + } + + my @idx = keys @arr; + while ( push @permutations, [@arr[@idx]] ) { + my $p = scalar @idx - 1; + while ($idx[$p-1] >= $idx[$p]) { + --$p; + } + my $q = $p; + if (!$q) { + last; + } + push @idx, reverse splice @idx, $p; + while ($idx[$p-1] > $idx[$q]) { + ++$q; + } + @idx[$p-1,$q]=@idx[$q,$p-1]; + } + + return @permutations; +} + +my @target = split /\s+/, shift; +my @source = map { [split /\s+/] } @ARGV; + +my $trg = join q{}, @target; +my $result = false; + +for my $p ( permute(@source) ) { + my $src = join q{}, map { join q{}, @$_ } @$p; + if ($src eq $trg) { + $result = true; + last; + } +} + +say $result ? "True" : "False";
\ No newline at end of file diff --git a/challenge-344/jaldhar-h-vyas/raku/ch-1.sh b/challenge-344/jaldhar-h-vyas/raku/ch-1.sh new file mode 100755 index 0000000000..435527458e --- /dev/null +++ b/challenge-344/jaldhar-h-vyas/raku/ch-1.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +raku -e 'my $x=@*ARGS.shift;say q{(},($x+@*ARGS.join).comb.join(q{, }),q{)}' "$@" diff --git a/challenge-344/jaldhar-h-vyas/raku/ch-2.raku b/challenge-344/jaldhar-h-vyas/raku/ch-2.raku new file mode 100755 index 0000000000..34e5c6eb0d --- /dev/null +++ b/challenge-344/jaldhar-h-vyas/raku/ch-2.raku @@ -0,0 +1,20 @@ +#!/usr/bin/raku + +sub MAIN( + *@args +) { + my @target = @args.shift.words; + my @source = @args.map({ [.words] }); + + my $trg = @target.join; + my $result = False; + + for @source.permutations -> $src { + if (@$srcĀ».join).join eq $trg { + $result = True; + last; + } + } + + say $result; +} |
