diff options
16 files changed, 371049 insertions, 370111 deletions
diff --git a/challenge-005/ruben-westerberg/README b/challenge-005/ruben-westerberg/README index 562c87853c..52df0a72a3 100644 --- a/challenge-005/ruben-westerberg/README +++ b/challenge-005/ruben-westerberg/README @@ -1,9 +1,10 @@ Solution by Ruben Westerberg +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 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 - -All solutions use an optional command line argument to specify a dictionary (one word per line) to check against. - -By default the words list/dictionary used is words_aplha.txt, which was sourced from https://github.com/dwyl/english-words +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 index ddb0d0e530..645d70e485 100644 --- a/challenge-005/ruben-westerberg/perl6/anagram.pm6 +++ b/challenge-005/ruben-westerberg/perl6/anagram.pm6 @@ -29,7 +29,6 @@ sub findAnangrams(@letters, @words) is export { @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 index c3ad9302a1..79a8554a51 100755 --- a/challenge-005/ruben-westerberg/perl6/ch-1.p6 +++ b/challenge-005/ruben-westerberg/perl6/ch-1.p6 @@ -2,11 +2,10 @@ # use lib $?FILE.IO.dirname; use anagram; -my $wordsFile= @*ARGS[0] // $?FILE.IO.dirname ~ "/../words_alpha.txt"; +my $wordsFile= $?FILE.IO.dirname ~ "/../words_alpha.txt"; my @word-list=$wordsFile.IO.lines; -while my $input=prompt "Give me a word: " { - my @letters=$input.trim.lc.split("")[1..*-2]; - say "Anagrams: ",findAnangrams(@letters,@word-list); -} +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 index 5ebbce1a8c..37c932fb1b 100755 --- a/challenge-005/ruben-westerberg/perl6/ch-2.p6 +++ b/challenge-005/ruben-westerberg/perl6/ch-2.p6 @@ -1,5 +1,6 @@ #!/usr/bin/env perl6 -my $wordsFile=$*ARGS[0] // $?FILE.IO.dirname~"/../words_alpha.txt"; -say $wordsFile.IO.lines.hyper(degree=>4, batch=>50000).map({ +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/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/words_alpha.txt b/challenge-005/ruben-westerberg/words_alpha.txt index 1d9abced5d..8902fa2503 100644 --- a/challenge-005/ruben-westerberg/words_alpha.txt +++ b/challenge-005/ruben-westerberg/words_alpha.txt @@ -1,370099 +1,370099 @@ -a
-aa
-aaa
-aah
-aahed
-aahing
-aahs
-aal
-aalii
-aaliis
-aals
-aam
-aani
-aardvark
-aardvarks
-aardwolf
-aardwolves
-aargh
-aaron
-aaronic
-aaronical
-aaronite
-aaronitic
-aarrgh
-aarrghh
-aaru
-aas
-aasvogel
-aasvogels
-ab
-aba
-ababdeh
-ababua
-abac
-abaca
-abacay
-abacas
-abacate
-abacaxi
-abaci
-abacinate
-abacination
-abacisci
-abaciscus
-abacist
-aback
-abacli
-abacot
-abacterial
-abactinal
-abactinally
-abaction
-abactor
-abaculi
-abaculus
-abacus
-abacuses
-abada
-abaddon
-abadejo
-abadengo
-abadia
-abadite
-abaff
-abaft
-abay
-abayah
-abaisance
-abaised
-abaiser
-abaisse
-abaissed
-abaka
-abakas
-abalation
-abalienate
-abalienated
-abalienating
-abalienation
-abalone
-abalones
-abama
-abamp
-abampere
-abamperes
-abamps
-aband
-abandon
-abandonable
-abandoned
-abandonedly
-abandonee
-abandoner
-abandoners
-abandoning
-abandonment
-abandonments
-abandons
-abandum
-abanet
-abanga
-abanic
-abannition
-abantes
-abapical
-abaptiston
-abaptistum
-abarambo
-abaris
-abarthrosis
-abarticular
-abarticulation
-abas
-abase
-abased
-abasedly
-abasedness
-abasement
-abasements
-abaser
-abasers
-abases
-abasgi
-abash
-abashed
-abashedly
-abashedness
-abashes
-abashing
-abashless
-abashlessly
-abashment
-abashments
-abasia
-abasias
-abasic
-abasing
-abasio
-abask
-abassi
-abassin
-abastard
-abastardize
-abastral
-abatable
-abatage
-abate
-abated
-abatement
|
