aboutsummaryrefslogtreecommitdiff
path: root/challenge-004
diff options
context:
space:
mode:
authordrclaw1394 <drclaw@mac.com>2019-04-17 17:06:18 +1000
committerGitHub <noreply@github.com>2019-04-17 17:06:18 +1000
commite80612d6f29f76ce4ce13eef35eb6a74389b4c86 (patch)
tree8a434f7b739b473be7204d0f4556396b75935161 /challenge-004
parent107bdf42f90c5c0d55f7c92cc0959ac54a151244 (diff)
parentcffdcd1d446a5865cdb0de52aa09afeab86b02aa (diff)
downloadperlweeklychallenge-club-e80612d6f29f76ce4ce13eef35eb6a74389b4c86.tar.gz
perlweeklychallenge-club-e80612d6f29f76ce4ce13eef35eb6a74389b4c86.tar.bz2
perlweeklychallenge-club-e80612d6f29f76ce4ce13eef35eb6a74389b4c86.zip
Merge pull request #3 from manwar/master
Merging for week 4 questions
Diffstat (limited to 'challenge-004')
-rw-r--r--challenge-004/abigail/README1
-rw-r--r--challenge-004/abigail/perl5/ch-1.pl1
-rw-r--r--challenge-004/abigail/perl5/ch-2.pl26
-rw-r--r--challenge-004/adam-russell/README1
-rw-r--r--challenge-004/ailbhe-tweedie/README1
-rw-r--r--challenge-004/alex-daniel/README1
-rw-r--r--challenge-004/alexander-karelas/README1
-rw-r--r--challenge-004/alexey-melezhik/README1
-rw-r--r--challenge-004/alicia-bielsa/README1
-rw-r--r--challenge-004/andrezgz/README1
-rw-r--r--challenge-004/antonio-gamiz/README1
-rw-r--r--challenge-004/arne-sommer/README1
-rw-r--r--challenge-004/arpad-toth/README1
-rw-r--r--challenge-004/athanasius/README1
-rw-r--r--challenge-004/athanasius/perl5/ch-1.pl2
-rw-r--r--challenge-004/athanasius/perl5/ch-2.pl72
-rw-r--r--challenge-004/aubrey-quarcoo/README1
-rw-r--r--challenge-004/bill-palmer/README1
-rw-r--r--challenge-004/bob-kleemann/README1
-rw-r--r--challenge-004/cliveholloway/README1
-rw-r--r--challenge-004/daniel-mantovani/README1
-rw-r--r--challenge-004/dave-cross/README1
-rw-r--r--challenge-004/dave-jacoby/README1
-rw-r--r--challenge-004/david-kayal/README1
-rw-r--r--challenge-004/doug-schrag/README1
-rw-r--r--challenge-004/duncan-c-white/README8
-rw-r--r--challenge-004/eddy-hs/README1
-rw-r--r--challenge-004/finley/README1
-rw-r--r--challenge-004/fjwhittle/README1
-rw-r--r--challenge-004/fjwhittle/blog.txt1
-rw-r--r--challenge-004/fjwhittle/perl6/ch-1--first.p61
-rw-r--r--challenge-004/fjwhittle/perl6/ch-1.p68
-rw-r--r--challenge-004/fjwhittle/perl6/ch-2.p617
-rw-r--r--challenge-004/fred-zinn/README1
-rw-r--r--challenge-004/freddie-b/README1
-rw-r--r--challenge-004/gustavo-chaves/README1
-rw-r--r--challenge-004/jacques-guinnebault/README1
-rw-r--r--challenge-004/jaime/README1
-rw-r--r--challenge-004/jaldhar-h-vyas/README1
-rw-r--r--challenge-004/james-smith/README.md55
-rw-r--r--challenge-004/james-smith/perl5/ch-1.pl1
-rw-r--r--challenge-004/james-smith/perl5/ch-2.pl38
-rw-r--r--challenge-004/james-smith/perl5/ch-2a.pl39
-rw-r--r--challenge-004/james-smith/perl6/ch-1.p61
-rw-r--r--challenge-004/james-smith/perl6/ch-2.p628
-rw-r--r--challenge-004/jeff/README1
-rw-r--r--challenge-004/jeremy-carman/README1
-rw-r--r--challenge-004/jim-bacon/README1
-rw-r--r--challenge-004/jj-merelo/README1
-rw-r--r--challenge-004/jo-christian-oterhals/README1
-rw-r--r--challenge-004/jo-christian-oterhals/blog.txt1
-rw-r--r--challenge-004/jo-christian-oterhals/perl5/ch-1.pl6
-rw-r--r--challenge-004/jo-christian-oterhals/perl5/ch-2.pl53
-rw-r--r--challenge-004/jo-christian-oterhals/perl5/random-2000.dict2000
-rw-r--r--challenge-004/jo-christian-oterhals/perl6/BigPI.pm627
-rw-r--r--challenge-004/jo-christian-oterhals/perl6/ch-1.p65
-rw-r--r--challenge-004/jo-christian-oterhals/perl6/ch-2.p615
-rw-r--r--challenge-004/jo-christian-oterhals/perl6/random-2000.dict2000
-rw-r--r--challenge-004/joelle-maslak/README1
-rw-r--r--challenge-004/john-barrett/README1
-rw-r--r--challenge-004/john-barrett/perl5/README.md8
-rwxr-xr-xchallenge-004/john-barrett/perl5/ch-1.pl1
-rwxr-xr-xchallenge-004/john-barrett/perl5/ch-2.pl31
-rw-r--r--challenge-004/juan-caballero/README1
-rw-r--r--challenge-004/khalid/README1
-rw-r--r--challenge-004/kian-meng-ang/README1
-rw-r--r--challenge-004/kivanc-yazan/README1
-rw-r--r--challenge-004/kivanc-yazan/perl5/ch-1.pl9
-rw-r--r--challenge-004/lars-balker/README1
-rw-r--r--challenge-004/laurent-rosenfeld/README1
-rw-r--r--challenge-004/magnus-woldrich/README1
-rw-r--r--challenge-004/mark-senn/README1
-rw-r--r--challenge-004/martin-mugeni/README1
-rw-r--r--challenge-004/matt-latusek/README1
-rwxr-xr-xchallenge-004/matt-latusek/perl5/ch-1.pl0
-rwxr-xr-xchallenge-004/matt-latusek/perl5/ch-2.pl23
-rw-r--r--challenge-004/maxim-kolodyazhny/README1
-rw-r--r--challenge-004/maxim-kolodyazhny/perl5/ch-1.pl0
-rw-r--r--challenge-004/michael-schaap/README1
-rw-r--r--challenge-004/neil-bowers/README1
-rw-r--r--challenge-004/nick-logan/README1
-rw-r--r--challenge-004/ohmycloud/README1
-rw-r--r--challenge-004/oleskii-tsvietnov/README1
-rw-r--r--challenge-004/ozzy/README1
-rw-r--r--challenge-004/pavel-jurca/README1
-rw-r--r--challenge-004/pete-houston/README1
-rw-r--r--challenge-004/philippe-bruhat/README1
-rw-r--r--challenge-004/prajith-p/README1
-rw-r--r--challenge-004/rob4t/README1
-rw-r--r--challenge-004/ruben-westerberg/README7
-rw-r--r--challenge-004/sean-meininger/README1
-rw-r--r--challenge-004/sergiotarxz/README1
-rw-r--r--challenge-004/simon-proctor/README1
-rw-r--r--challenge-004/simon-reinhardt/README1
-rw-r--r--challenge-004/steve-rogerson/README1
-rw-r--r--challenge-004/steven-lembark/README1
-rw-r--r--challenge-004/steven-wilson/README1
-rw-r--r--challenge-004/tiago-stock/README1
-rw-r--r--challenge-004/tore-andersson/README1
-rw-r--r--challenge-004/veesh-goldman/README1
-rw-r--r--challenge-004/william-gilmore/README1
101 files changed, 4554 insertions, 0 deletions
diff --git a/challenge-004/abigail/README b/challenge-004/abigail/README
new file mode 100644
index 0000000000..5f0d73ae16
--- /dev/null
+++ b/challenge-004/abigail/README
@@ -0,0 +1 @@
+Solution by Abigail
diff --git a/challenge-004/abigail/perl5/ch-1.pl b/challenge-004/abigail/perl5/ch-1.pl
new file mode 100644
index 0000000000..b6b556b801
--- /dev/null
+++ b/challenge-004/abigail/perl5/ch-1.pl
@@ -0,0 +1 @@
+say 2 * atan2 (1,0)
diff --git a/challenge-004/abigail/perl5/ch-2.pl b/challenge-004/abigail/perl5/ch-2.pl
new file mode 100644
index 0000000000..7d252aa886
--- /dev/null
+++ b/challenge-004/abigail/perl5/ch-2.pl
@@ -0,0 +1,26 @@
+use 5.026;
+
+use strict;
+use warnings;
+no warnings 'syntax';
+
+#
+# Assume the list of letters are the arguments. Read the list
+# of words from STDIN
+#
+my %letters;
+$letters {$_} ++ for "@ARGV" =~ /[a-z]/g;
+
+WORD: while (<STDIN>) {
+ chomp;
+ next if /[^a-z]/;
+ my %l;
+ $l {$_} ++ for split //;
+ foreach my $c (keys %l) {
+ no warnings 'uninitialized';
+ next WORD if $letters {$c} < $l {$c};
+ }
+ say;
+}
+
+__END__
diff --git a/challenge-004/adam-russell/README b/challenge-004/adam-russell/README
new file mode 100644
index 0000000000..9420c9a781
--- /dev/null
+++ b/challenge-004/adam-russell/README
@@ -0,0 +1 @@
+Solution by Adam Russell
diff --git a/challenge-004/ailbhe-tweedie/README b/challenge-004/ailbhe-tweedie/README
new file mode 100644
index 0000000000..36d4034b70
--- /dev/null
+++ b/challenge-004/ailbhe-tweedie/README
@@ -0,0 +1 @@
+Solution by Ailbhe Tweedie
diff --git a/challenge-004/alex-daniel/README b/challenge-004/alex-daniel/README
new file mode 100644
index 0000000000..65550789bd
--- /dev/null
+++ b/challenge-004/alex-daniel/README
@@ -0,0 +1 @@
+Solution by Alex Daniel.
diff --git a/challenge-004/alexander-karelas/README b/challenge-004/alexander-karelas/README
new file mode 100644
index 0000000000..3de9fce8d9
--- /dev/null
+++ b/challenge-004/alexander-karelas/README
@@ -0,0 +1 @@
+Solution by Alexander Karelas
diff --git a/challenge-004/alexey-melezhik/README b/challenge-004/alexey-melezhik/README
new file mode 100644
index 0000000000..ca7008f224
--- /dev/null
+++ b/challenge-004/alexey-melezhik/README
@@ -0,0 +1 @@
+Solution by Alexey Melezhik
diff --git a/challenge-004/alicia-bielsa/README b/challenge-004/alicia-bielsa/README
new file mode 100644
index 0000000000..c5187874c3
--- /dev/null
+++ b/challenge-004/alicia-bielsa/README
@@ -0,0 +1 @@
+Solution by Alicia Beilsa.
diff --git a/challenge-004/andrezgz/README b/challenge-004/andrezgz/README
new file mode 100644
index 0000000000..f4fd0da88e
--- /dev/null
+++ b/challenge-004/andrezgz/README
@@ -0,0 +1 @@
+Solution by Andrezgz
diff --git a/challenge-004/antonio-gamiz/README b/challenge-004/antonio-gamiz/README
new file mode 100644
index 0000000000..1f5ed5871a
--- /dev/null
+++ b/challenge-004/antonio-gamiz/README
@@ -0,0 +1 @@
+Solution by Antonio Gamiz
diff --git a/challenge-004/arne-sommer/README b/challenge-004/arne-sommer/README
new file mode 100644
index 0000000000..b5d88e4df4
--- /dev/null
+++ b/challenge-004/arne-sommer/README
@@ -0,0 +1 @@
+Solution by Arne Sommer.
diff --git a/challenge-004/arpad-toth/README b/challenge-004/arpad-toth/README
new file mode 100644
index 0000000000..6661dd82c1
--- /dev/null
+++ b/challenge-004/arpad-toth/README
@@ -0,0 +1 @@
+Solution by Arpad Toth
diff --git a/challenge-004/athanasius/README b/challenge-004/athanasius/README
new file mode 100644
index 0000000000..cc357fda4a
--- /dev/null
+++ b/challenge-004/athanasius/README
@@ -0,0 +1 @@
+Solution by Athanasius
diff --git a/challenge-004/athanasius/perl5/ch-1.pl b/challenge-004/athanasius/perl5/ch-1.pl
new file mode 100644
index 0000000000..434e378932
--- /dev/null
+++ b/challenge-004/athanasius/perl5/ch-1.pl
@@ -0,0 +1,2 @@
+use bignum 'bpi';
+print "\n", bpi(-s __FILE__), "\n";
diff --git a/challenge-004/athanasius/perl5/ch-2.pl b/challenge-004/athanasius/perl5/ch-2.pl
new file mode 100644
index 0000000000..8c6339a41b
--- /dev/null
+++ b/challenge-004/athanasius/perl5/ch-2.pl
@@ -0,0 +1,72 @@
+use strict;
+use warnings;
+use Data::Dump qw( pp );
+
+# Usage: perl Challenge_2.pl <filename> <letters>
+#
+# <letters> may be given in "words" separated by whitespace; the whitespace will
+# be ignored
+
+scalar @ARGV >= 2
+ or die "\nUsage: perl $0 <filename> <letters>, stopped";
+
+my ($filename, @letters) = @ARGV;
+
+open my $fh, '<', $filename
+ or die "Cannot open file '$filename' for reading, stopped";
+
+my %words_found;
+my %letters;
+++$letters{$_} for map { lc } split //, join('', @letters);
+
+while (my $line = <$fh>)
+{
+ $line =~ s/\s//g; # Remove all whitespace (incl. trailing newline)
+ my $word = lc $line; # Convert to lower case to make case insensitive
+
+ if (exists $words_found{$word})
+ {
+ ++$words_found{$word};
+ }
+ else
+ {
+ my @word_letters = sort map { lc } split //, $word;
+ ++$words_found{$word} if is_submultiset(@word_letters);
+ }
+}
+
+close $fh
+ or die "Cannot close file '$filename', stopped";
+
+# Display results
+
+if (scalar keys %words_found == 0)
+{
+ print "\nNo words found\n";
+}
+else
+{
+ print "\nWords found:\n", pp(\%words_found), "\n";
+}
+
+# Return 1 if the given letters are a sub-multiset of the multiset @letters
+# 0 otherwise
+
+sub is_submultiset
+{
+ my %word_letters;
+
+ for (@_)
+ {
+ return 0 unless exists $letters{$_};
+ ++$word_letters{$_};
+ }
+
+ for (keys %word_letters)
+ {
+ return 0 if $word_letters{$_} > $letters{$_};
+ }
+
+ return 1;
+}
+
diff --git a/challenge-004/aubrey-quarcoo/README b/challenge-004/aubrey-quarcoo/README
new file mode 100644
index 0000000000..8e63a2c1f5
--- /dev/null
+++ b/challenge-004/aubrey-quarcoo/README
@@ -0,0 +1 @@