aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaldhar H. Vyas <jaldhar@braincells.com>2020-08-17 17:50:59 -0400
committerJaldhar H. Vyas <jaldhar@braincells.com>2020-08-17 17:50:59 -0400
commit411178fb8bb6c1afb95ec1ff27d2865ba4d8264d (patch)
tree7d12020f7a4a8907e67e7b1e4100df2fd6c50a0f
parentbe31094a52b8d088203ed30e6ac3ea5c43af38f2 (diff)
downloadperlweeklychallenge-club-411178fb8bb6c1afb95ec1ff27d2865ba4d8264d.tar.gz
perlweeklychallenge-club-411178fb8bb6c1afb95ec1ff27d2865ba4d8264d.tar.bz2
perlweeklychallenge-club-411178fb8bb6c1afb95ec1ff27d2865ba4d8264d.zip
Challenge 74 by Jaldhar H. Vyas
-rw-r--r--challenge-074/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-074/jaldhar-h-vyas/perl/ch-1.pl33
-rwxr-xr-xchallenge-074/jaldhar-h-vyas/perl/ch-2.pl36
-rwxr-xr-xchallenge-074/jaldhar-h-vyas/raku/ch-1.p611
-rwxr-xr-xchallenge-074/jaldhar-h-vyas/raku/ch-2.p622
5 files changed, 103 insertions, 0 deletions
diff --git a/challenge-074/jaldhar-h-vyas/blog.txt b/challenge-074/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..5f168dabc6
--- /dev/null
+++ b/challenge-074/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2020/08/perl_weekly_challenge_week_74.html
diff --git a/challenge-074/jaldhar-h-vyas/perl/ch-1.pl b/challenge-074/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..504c168544
--- /dev/null
+++ b/challenge-074/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,33 @@
+#!/usr/bin/perl
+use 5.020;
+use warnings;
+use English qw/ -no_match_vars /;
+
+sub usage {
+
+ print<<"-USAGE-";
+Usage:
+ $PROGRAM_NAME [<A> ...]
+
+ [<A> ...] list of integers
+-USAGE-
+
+ exit 0;
+}
+
+my @A = @ARGV;
+if (!scalar @A) {
+ usage();
+}
+
+my %count;
+map { $count{$_}++; } @A;
+my $N = int (scalar @A / 2);
+
+my @majority = grep { $count{$_} > $N; } keys %count;
+
+if (!scalar @majority) {
+ @majority = (-1);
+}
+
+say join q{ }, @majority; \ No newline at end of file
diff --git a/challenge-074/jaldhar-h-vyas/perl/ch-2.pl b/challenge-074/jaldhar-h-vyas/perl/ch-2.pl
new file mode 100755
index 0000000000..8c7969844f
--- /dev/null
+++ b/challenge-074/jaldhar-h-vyas/perl/ch-2.pl
@@ -0,0 +1,36 @@
+#!/usr/bin/perl
+use 5.020;
+use warnings;
+use English qw/ -no_match_vars /;
+
+sub usage {
+
+ print<<"-USAGE-";
+Usage:
+ $PROGRAM_NAME <S>
+
+ <S> a string
+-USAGE-
+
+ exit 0;
+}
+
+my $S = shift // usage();
+
+my @output;
+
+for my $i (1 .. length $S) {
+ my $slice = substr $S, 0, $i;
+ my $fnr = '#';
+
+ for my $c (split //, $slice) {
+ my @matches = ($slice =~ /$c/g);
+ if (scalar @matches == 1) {
+ $fnr = $c;
+ }
+ }
+
+ push @output, $fnr;
+}
+
+say join q{}, @output; \ No newline at end of file
diff --git a/challenge-074/jaldhar-h-vyas/raku/ch-1.p6 b/challenge-074/jaldhar-h-vyas/raku/ch-1.p6
new file mode 100755
index 0000000000..7e679df1aa
--- /dev/null
+++ b/challenge-074/jaldhar-h-vyas/raku/ch-1.p6
@@ -0,0 +1,11 @@
+#!/usr/bin/perl6
+
+sub MAIN(
+ *@A #= list of integers
+ where { @A.elems > 0; }
+) {
+ my %count = @A.classify({ $_; });
+ my $N = (@A.elems / 2).floor;
+
+ (%count.keys.grep({ %count{$_} > $N; }) || (-1)).join(q{ }).say;
+} \ No newline at end of file
diff --git a/challenge-074/jaldhar-h-vyas/raku/ch-2.p6 b/challenge-074/jaldhar-h-vyas/raku/ch-2.p6
new file mode 100755
index 0000000000..eff5a60429
--- /dev/null
+++ b/challenge-074/jaldhar-h-vyas/raku/ch-2.p6
@@ -0,0 +1,22 @@
+#!/usr/bin/perl6
+
+sub MAIN(
+ Str $S #= a string
+) {
+ my @output;
+
+ for (1 .. $S.chars) -> $i {
+ my $slice = $S.substr(0, $i);
+ my $fnr = '#';
+
+ for $slice.comb -> $c {
+ if ($slice ~~ m:g/ $c / == 1) {
+ $fnr = $c;
+ }
+ }
+
+ @output.push($fnr);
+ }
+
+ @output.join(q{}).say;
+} \ No newline at end of file