Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
56
Task/Anagrams/Seed7/anagrams.seed7
Normal file
56
Task/Anagrams/Seed7/anagrams.seed7
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
$ include "seed7_05.s7i";
|
||||
include "gethttp.s7i";
|
||||
include "strifile.s7i";
|
||||
|
||||
const type: anagramHash is hash [string] array string;
|
||||
|
||||
const func string: sort (in string: stri) is func
|
||||
result
|
||||
var string: sortedStri is "";
|
||||
local
|
||||
var integer: i is 0;
|
||||
var integer: j is 0;
|
||||
var char: ch is ' ';
|
||||
begin
|
||||
sortedStri := stri;
|
||||
for i range 1 to length(sortedStri) do
|
||||
for j range succ(i) to length(sortedStri) do
|
||||
if sortedStri[i] > sortedStri[j] then
|
||||
ch := sortedStri[i];
|
||||
sortedStri @:= [i] sortedStri[j];
|
||||
sortedStri @:= [j] ch;
|
||||
end if;
|
||||
end for;
|
||||
end for;
|
||||
end func;
|
||||
|
||||
const proc: main is func
|
||||
local
|
||||
var file: dictFile is STD_NULL;
|
||||
var string: word is "";
|
||||
var string: sortedLetters is "";
|
||||
var anagramHash: anagrams is anagramHash.value;
|
||||
var integer: length is 0;
|
||||
var integer: maxLength is 0;
|
||||
begin
|
||||
dictFile := openStrifile(getHttp("wiki.puzzlers.org/pub/wordlists/unixdict.txt"));
|
||||
while hasNext(dictFile) do
|
||||
readln(dictFile, word);
|
||||
sortedLetters := sort(word);
|
||||
if sortedLetters in anagrams then
|
||||
anagrams[sortedLetters] &:= word;
|
||||
else
|
||||
anagrams @:= [sortedLetters] [] (word);
|
||||
end if;
|
||||
length := length(anagrams[sortedLetters]);
|
||||
if length > maxLength then
|
||||
maxLength := length;
|
||||
end if;
|
||||
end while;
|
||||
close(dictFile);
|
||||
for sortedLetters range sort(keys(anagrams)) do
|
||||
if length(anagrams[sortedLetters]) = maxLength then
|
||||
writeln(join(anagrams[sortedLetters], ", "));
|
||||
end if;
|
||||
end for;
|
||||
end func;
|
||||
Loading…
Add table
Add a link
Reference in a new issue