aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-005/ruben-westerberg/README3
-rw-r--r--challenge-005/ruben-westerberg/perl6/anagram.pm615
-rwxr-xr-xchallenge-005/ruben-westerberg/perl6/ch-1.p64
-rwxr-xr-xchallenge-005/ruben-westerberg/perl6/ch-2.p62
-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