diff options
| -rw-r--r-- | challenge-005/ruben-westerberg/README | 3 | ||||
| -rw-r--r-- | challenge-005/ruben-westerberg/perl6/anagram.pm6 | 15 | ||||
| -rwxr-xr-x | challenge-005/ruben-westerberg/perl6/ch-1.p6 | 4 | ||||
| -rwxr-xr-x | challenge-005/ruben-westerberg/perl6/ch-2.p6 | 2 | ||||
| -rw-r--r-- | challenge-005/ruben-westerberg/words_alpha.txt (renamed from challenge-005/ruben-westerberg/perl6/words_alpha.txt) | 0 |
5 files changed, 12 insertions, 12 deletions
diff --git a/challenge-005/ruben-westerberg/README b/challenge-005/ruben-westerberg/README index 8a3637b1b3..562c87853c 100644 --- a/challenge-005/ruben-westerberg/README +++ b/challenge-005/ruben-westerberg/README @@ -4,3 +4,6 @@ Solution by Ruben Westerberg #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 diff --git a/challenge-005/ruben-westerberg/perl6/anagram.pm6 b/challenge-005/ruben-westerberg/perl6/anagram.pm6 index 0f4710d52f..ddb0d0e530 100644 --- a/challenge-005/ruben-westerberg/perl6/anagram.pm6 +++ b/challenge-005/ruben-westerberg/perl6/anagram.pm6 @@ -5,12 +5,14 @@ sub findAnangrams(@letters, @words) is export { my @anagrams; my $test; while * { - my $k=0; - my $l=0; + $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 $maxK=-1; - my $maxL=-1; + my int $maxK=-1; + my int $maxL=-1; while ($k < @a.elems-1) { $maxK= $k if ((@a[$k] lt @a[$k+1]) && ($k > $maxK)); @@ -27,12 +29,7 @@ sub findAnangrams(@letters, @words) is export { @a[$maxL]=$tmp; my @b=@a.splice($maxK+1).reverse; @a.=append(@b); - $test=@a.join(""); - #say $test; - @anagrams.append(@words.hyper(degree=>4,batch=>50000).grep: {$_ eq $test}); } - $test=@a.join(""); - @anagrams.append(@words.hyper(degree=>4,batch=>50000).grep: {$_ eq $test}); @anagrams; } diff --git a/challenge-005/ruben-westerberg/perl6/ch-1.p6 b/challenge-005/ruben-westerberg/perl6/ch-1.p6 index 308d37672c..c3ad9302a1 100755 --- a/challenge-005/ruben-westerberg/perl6/ch-1.p6 +++ b/challenge-005/ruben-westerberg/perl6/ch-1.p6 @@ -1,8 +1,8 @@ #!/usr/bin/env perl6 # -use lib './'; +use lib $?FILE.IO.dirname; use anagram; -my $wordsFile= @*ARGS[0] // "words_alpha.txt"; +my $wordsFile= @*ARGS[0] // $?FILE.IO.dirname ~ "/../words_alpha.txt"; my @word-list=$wordsFile.IO.lines; while my $input=prompt "Give me a word: " { diff --git a/challenge-005/ruben-westerberg/perl6/ch-2.p6 b/challenge-005/ruben-westerberg/perl6/ch-2.p6 index 2ce015866c..5ebbce1a8c 100755 --- a/challenge-005/ruben-westerberg/perl6/ch-2.p6 +++ b/challenge-005/ruben-westerberg/perl6/ch-2.p6 @@ -1,5 +1,5 @@ #!/usr/bin/env perl6 -my $wordsFile=$*ARGS[0] // "words_alpha.txt"; +my $wordsFile=$*ARGS[0] // $?FILE.IO.dirname~"/../words_alpha.txt"; say $wordsFile.IO.lines.hyper(degree=>4, batch=>50000).map({ .split("")[1..*-2].sort.join; }).Bag.antipairs.max; diff --git a/challenge-005/ruben-westerberg/perl6/words_alpha.txt b/challenge-005/ruben-westerberg/words_alpha.txt index 1d9abced5d..1d9abced5d 100644 --- a/challenge-005/ruben-westerberg/perl6/words_alpha.txt +++ b/challenge-005/ruben-westerberg/words_alpha.txt |
