Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
34
Task/Anagrams/Icon/anagrams.icon
Normal file
34
Task/Anagrams/Icon/anagrams.icon
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
procedure main(args)
|
||||
every writeSet(!getLongestAnagramSets())
|
||||
end
|
||||
|
||||
procedure getLongestAnagramSets()
|
||||
wordSets := table()
|
||||
longestWSet := 0
|
||||
longSets := set()
|
||||
|
||||
every word := !&input do {
|
||||
wChars := csort(word)
|
||||
/wordSets[wChars] := set()
|
||||
insert(wordSets[wChars], word)
|
||||
|
||||
if 1 < *wordSets[wChars} == longestWSet then
|
||||
insert(longSets, wordSets[wChars])
|
||||
if 1 < *wordSets[wChars} > longestWSet then {
|
||||
longestWSet := *wordSets[wChars}
|
||||
longSets := set([wordSets[wChars]])
|
||||
}
|
||||
}
|
||||
|
||||
return longSets
|
||||
end
|
||||
|
||||
procedure writeSet(words)
|
||||
every writes("\t"|!words," ")
|
||||
write()
|
||||
end
|
||||
|
||||
procedure csort(w)
|
||||
every (s := "") ||:= (find(c := !cset(w),w),c)
|
||||
return s
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue