diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2019-04-28 17:11:35 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-04-28 17:11:35 +0100 |
| commit | 7e738cac946a6c0629c1614247cf03fddbe356da (patch) | |
| tree | db5432082356921831bb9913ca10d2f9c96c99c5 | |
| parent | 5e2d3a25ce91071c9ee4e7b1269db428ea9db8de (diff) | |
| parent | b504c8012a2856b8229bd7ee3399ff905fc7e5e8 (diff) | |
| download | perlweeklychallenge-club-7e738cac946a6c0629c1614247cf03fddbe356da.tar.gz perlweeklychallenge-club-7e738cac946a6c0629c1614247cf03fddbe356da.tar.bz2 perlweeklychallenge-club-7e738cac946a6c0629c1614247cf03fddbe356da.zip | |
Merge pull request #100 from drclaw1394/master
Ruben Westerberg/drclaw solutions for W5C1 and W5C2, p5 and p6
18 files changed, 371095 insertions, 5 deletions
diff --git a/challenge-005/ruben-westerberg/README b/challenge-005/ruben-westerberg/README index f8c44ff70c..52df0a72a3 100644 --- a/challenge-005/ruben-westerberg/README +++ b/challenge-005/ruben-westerberg/README @@ -1,9 +1,10 @@ Solution by Ruben Westerberg -#Challenge 1: Calculate pi to precision of byte size of program. -Simply run the .pl and .p6 scripts +These solutions use the words list/dictionary sourced from https://github.com/dwyl/english-words. +End of line was changed from dos to unix for the purpose of these programs -#Challenge 2: Word find from a given file of letters -Usage is perl5/ch-2.pl letters.txt words.txt -Usage is perl6/ch-2.p6 letters.txt words.txt +#Challenge 1: Write a program which prints out all anagrams for a given word. +Usage: give a single command line argument which is the word/sequence to find anagrams for +#Challenge 2: Write a program to find the sequence of characters that has the most anagrams +Run without commandline arguments. diff --git a/challenge-005/ruben-westerberg/perl5/.ch-2.pl.swp b/challenge-005/ruben-westerberg/perl5/.ch-2.pl.swp Binary files differnew file mode 100644 index 0000000000..d11770bb3d --- /dev/null +++ b/challenge-005/ruben-westerberg/perl5/.ch-2.pl.swp diff --git a/challenge-005/ruben-westerberg/perl5/ch-1.pl b/challenge-005/ruben-westerberg/perl5/ch-1.pl new file mode 100755 index 0000000000..12cd8f88e6 --- /dev/null +++ b/challenge-005/ruben-westerberg/perl5/ch-1.pl @@ -0,0 +1,55 @@ +#!/usr/bin/env perl +# +use warnings; +use strict; +use FindBin; +my $wordsFile= $FindBin::Bin."/../words_alpha.txt"; +open my $wfh, "<" , $wordsFile; +my @words; +while (<$wfh>) { + chomp; + push @words, $_; +} +close $wfh; + +sub findAnagrams { + my $word=shift; + my $ref=shift; + my @words=@$ref;; + my @a=sort(split('', lc $word)); + + my @anagrams; + my $test; + while (1){ + $test=join '',@a; + #print "$test\n"; + my @res=grep {$_ eq $test} @words; + + push @anagrams, @res; + my $k=0; + my $l=0; + my $maxK=-1; + my $maxL=-1; + while ($k < $#a) { + $maxK= $k if (($a[$k] lt $a[$k+1]) && ($k > $maxK)); + $k++; + } + last unless $maxK >= 0; + $maxL=$maxK+1; + while ($l <= $#a) { + $maxL= $l if (($a[$maxK] lt $a[$l]) && ($l > $maxL)); + $l++; + } + my $tmp=$a[$maxK]; + $a[$maxK]=$a[$maxL]; + $a[$maxL]=$tmp; + my @b= reverse(splice @a, $maxK+1); + push @a, @b; + } + + return @anagrams; +} + +my $word=$ARGV[0]; +my @anagrams=findAnagrams($word, \@words); +print "Anagrams: @anagrams ","\n"; diff --git a/challenge-005/ruben-westerberg/perl5/ch-2.pl b/challenge-005/ruben-westerberg/perl5/ch-2.pl new file mode 100755 index 0000000000..9839c7442a --- /dev/null +++ b/challenge-005/ruben-westerberg/perl5/ch-2.pl @@ -0,0 +1,24 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use FindBin; +my $wordsFile = $ARGV[0] // $FindBin::Bin.'/../words_alpha.txt'; +open my $wfh ,"<", $wordsFile; +my @words; +my %bag; +my $maxLetters; +my $maxCount=-1; +while (<$wfh>) { + chomp; + my $key= join '', sort split ''; + $bag{$key}++; + if ( $bag{$key} > $maxCount) { + $maxLetters = $key; + $maxCount= $bag{$key}; + } +} + +close $wfh; +print "$maxLetters has $maxCount anagrams\n"; + + diff --git a/challenge-005/ruben-westerberg/perl5/p5.txt b/challenge-005/ruben-westerberg/perl5/p5.txt new file mode 100644 index 0000000000..2c084c6f7e --- /dev/null +++ b/challenge-005/ruben-westerberg/perl5/p5.txt @@ -0,0 +1,135 @@ +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 2 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 0 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 2 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 0 MaxL: 1 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 2 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 + diff --git a/challenge-005/ruben-westerberg/perl5/p6.txt b/challenge-005/ruben-westerberg/perl5/p6.txt new file mode 100644 index 0000000000..47705240c6 --- /dev/null +++ b/challenge-005/ruben-westerberg/perl5/p6.txt @@ -0,0 +1,720 @@ +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 2 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 0 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 2 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 0 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 2 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 0 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 2 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 0 MaxL: 2 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 2 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 0 MaxL: 1 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 1 MaxL: 2 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +MaxK: 2 MaxL: 3 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 5 +MaxK: 4 MaxL: 5 +MaxK: 3 MaxL: 4 +MaxK: 4 MaxL: 5 +Anagrams: [enlist inlets listen silent slinte tinsel] diff --git a/challenge-005/ruben-westerberg/perl6/.ch-1.p6.swp b/challenge-005/ruben-westerberg/perl6/.ch-1.p6.swp Binary files differnew file mode 100644 index 0000000000..435426945c --- /dev/null +++ b/challenge-005/ruben-westerberg/perl6/.ch-1.p6.swp diff --git a/challenge-005/ruben-westerberg/perl6/.ch-2.p6.swp b/challenge-005/ruben-westerberg/perl6/.ch-2.p6.swp Binary files differnew file mode 100644 index 0000000000..a0673fa496 --- /dev/null +++ b/challenge-005/ruben-westerberg/perl6/.ch-2.p6.swp diff --git a/challenge-005/ruben-westerberg/perl6/.precomp/.lock b/challenge-005/ruben-westerberg/perl6/.precomp/.lock new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/challenge-005/ruben-westerberg/perl6/.precomp/.lock diff --git a/challenge-005/ruben-westerberg/perl6/.precomp/E8252BAA8CCA5C482BDD1088C325C513F7B95D46/8E/8EC489C474F22D0612C0E178FCE69EABDC1889BA b/challenge-005/ruben-westerberg/perl6/.precomp/E8252BAA8CCA5C482BDD1088C325C513F7B95D46/8E/8EC489C474F22D0612C0E178FCE69EABDC1889BA Binary files differnew file mode 100644 index 0000000000..90d5f7521d --- /dev/null +++ b/challenge-005/ruben-westerberg/perl6/.precomp/E8252BAA8CCA5C482BDD1088C325C513F7B95D46/8E/8EC489C474F22D0612C0E178FCE69EABDC1889BA diff --git a/challenge-005/ruben-westerberg/perl6/.precomp/E8252BAA8CCA5C482BDD1088C325C513F7B95D46/8E/8EC489C474F22D0612C0E178FCE69EABDC1889BA.repo-id b/challenge-005/ruben-westerberg/perl6/.precomp/E8252BAA8CCA5C482BDD1088C325C513F7B95D46/8E/8EC489C474F22D0612C0E178FCE69EABDC1889BA.repo-id new file mode 100644 index 0000000000..2b400f7316 --- /dev/null +++ b/challenge-005/ruben-westerberg/perl6/.precomp/E8252BAA8CCA5C482BDD1088C325C513F7B95D46/8E/8EC489C474F22D0612C0E178FCE69EABDC1889BA.repo-id @@ -0,0 +1 @@ +C545466C5B3B71D462733C373F50078A3AD53B64
\ No newline at end of file diff --git a/challenge-005/ruben-westerberg/perl6/anagram.pm6 b/challenge-005/ruben-westerberg/perl6/anagram.pm6 new file mode 100644 index 0000000000..645d70e485 --- /dev/null +++ b/challenge-005/ruben-westerberg/perl6/anagram.pm6 @@ -0,0 +1,34 @@ +unit module anagram; + +sub findAnangrams(@letters, @words) is export { + my @a=sort @letters; + my @anagrams; + my $test; + while * { + $test=@a.join(""); + @anagrams.append(@words.hyper(degree=>4,batch=>50000).grep: {$_ eq $test}); + my int $k=0; + my int $l=0; + my $tmp; + my $flag=False; + my int $maxK=-1; + my int $maxL=-1; + + while ($k < @a.elems-1) { + $maxK= $k if ((@a[$k] lt @a[$k+1]) && ($k > $maxK)); + $k++; + } + last unless $maxK >= 0; + $maxL=$maxK+1; + while ($l < @a.elems) { + $maxL= $l if ((@a[$maxK] lt @a[$l]) && $l>$maxL); + $l++; + } + $tmp=@a[$maxK]; + @a[$maxK]=@a[$maxL]; + @a[$maxL]=$tmp; + my @b=@a.splice($maxK+1).reverse; + @a.=append(@b); + } + @anagrams; +} diff --git a/challenge-005/ruben-westerberg/perl6/ch-1.p6 b/challenge-005/ruben-westerberg/perl6/ch-1.p6 new file mode 100755 index 0000000000..79a8554a51 --- /dev/null +++ b/challenge-005/ruben-westerberg/perl6/ch-1.p6 @@ -0,0 +1,11 @@ +#!/usr/bin/env perl6 +# +use lib $?FILE.IO.dirname; +use anagram; +my $wordsFile= $?FILE.IO.dirname ~ "/../words_alpha.txt"; + +my @word-list=$wordsFile.IO.lines; +my $input= @*ARGS[0]; +my @letters=$input.trim.lc.split("")[1..*-2]; +say "Anagrams: ",findAnangrams(@letters,@word-list).join: ' '; + diff --git a/challenge-005/ruben-westerberg/perl6/ch-2.p6 b/challenge-005/ruben-westerberg/perl6/ch-2.p6 new file mode 100755 index 0000000000..37c932fb1b --- /dev/null +++ b/challenge-005/ruben-westerberg/perl6/ch-2.p6 @@ -0,0 +1,6 @@ +#!/usr/bin/env perl6 +my $wordsFile=$?FILE.IO.dirname~"/../words_alpha.txt"; +my $max=$wordsFile.IO.lines.race(degree=>4, batch=>50000).map({ + .split("")[1..*-2].sort.join; +}).Bag.antipairs.max; +say "$max.value() has $max.key() anagrams"; diff --git a/challenge-005/ruben-westerberg/perl6/input-words.txt b/challenge-005/ruben-westerberg/perl6/input-words.txt new file mode 100644 index 0000000000..1c871f9903 --- /dev/null +++ b/challenge-005/ruben-westerberg/perl6/input-words.txt @@ -0,0 +1 @@ +silent diff --git a/challenge-005/ruben-westerberg/perl6/short.txt b/challenge-005/ruben-westerberg/perl6/short.txt new file mode 100644 index 0000000000..f107a30510 --- /dev/null +++ b/challenge-005/ruben-westerberg/perl6/short.txt @@ -0,0 +1,3 @@ +loop +pool + diff --git a/challenge-005/ruben-westerberg/perl6/words_alpha.zip b/challenge-005/ruben-westerberg/perl6/words_alpha.zip Binary files differnew file mode 100644 index 0000000000..c23e664fa7 --- /dev/null +++ b/challenge-005/ruben-westerberg/perl6/words_alpha.zip diff --git a/challenge-005/ruben-westerberg/words_alpha.txt b/challenge-005/ruben-westerberg/words_alpha.txt new file mode 100644 index 0000000000..8902fa2503 --- /dev/null +++ b/challenge-005/ruben-westerberg/words_alpha.txt @@ -0,0 +1,370099 @@ +a +aa +aaa +aah +aahed +aahing +aahs +aal +aalii +aaliis +aals +aam +aani +aardvark +aardvarks +aardwolf +aardwolves +aargh +aaro |
