Anagrams: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) (Rename Perl 6 -> Raku, alphabetize, minor clean-up) |
(Crystal code) |
||
Line 1,817: | Line 1,817: | ||
caret trace crate cater carte |
caret trace crate cater carte |
||
</pre> |
</pre> |
||
=={{header|Crystal}}== |
|||
{{trans|Ruby}} |
|||
<lang ruby>require "http/client" |
|||
response = HTTP::Client.get("http://wiki.puzzlers.org/pub/wordlists/unixdict.txt") |
|||
words : Array(String) = response.body_io.gets_to_end.split |
|||
anagram = {} of String => Array(String) |
|||
words.each do |word| |
|||
key = word.split("").sort.join |
|||
if !anagram[key]? |
|||
anagram[key] = [word] |
|||
else |
|||
anagram[key] << word |
|||
end |
|||
end |
|||
count = anagram.values.map { |ana| ana.size }.max |
|||
anagram.each_value { |ana| puts ana if ana.size >= count } |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
["abel", "able", "bale", "bela", "elba"] |
|||
["alger", "glare", "lager", "large", "regal"] |
|||
["angel", "angle", "galen", "glean", "lange"] |
|||
["caret", "carte", "cater", "crate", "trace"] |
|||
["elan", "lane", "lean", "lena", "neal"] |
|||
["evil", "levi", "live", "veil", "vile"] |
|||
</pre> |
|||
== {{header|D}} == |
== {{header|D}} == |
||
===Short Functional Version=== |
===Short Functional Version=== |