Anagrams

Revision as of 20:28, 24 September 2008 by rosettacode>Paddy3118 (New page: {{task}} Two or more words can be composed of the same characters, but in a different order. Using the word list at http://www.puzzlers.org/pub/wordlists/unixdict.txt, find the sets of wor...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Two or more words can be composed of the same characters, but in a different order. Using the word list at http://www.puzzlers.org/pub/wordlists/unixdict.txt, find the sets of words that share the same characters that contain the most words in them.

Task
Anagrams
You are encouraged to solve this task according to the task description, using any language you may know.

((header|Python}}

Python 2.5 shell input (IDLE) <python>>>> import urllib >>> from collections import defaultdict >>> words = urllib.urlopen('http://www.puzzlers.org/pub/wordlists/unixdict.txt').read().split() >>> len(words) 25104 >>> acronym = defaultdict(list) # map sorted chars to acronyms >>> for word in words: acronym[str(sorted(word))].append( word )


>>> count, max_acronyms = max((len(acr), acr) for acr in acronym.itervalues()) >>> for acr in acronym.itervalues(): if len(acr) >= count: print acr


['caret', 'carte', 'cater', 'crate', 'trace'] ['alger', 'glare', 'lager', 'large', 'regal'] ['evil', 'levi', 'live', 'veil', 'vile'] ['angel', 'angle', 'galen', 'glean', 'lange'] ['elan', 'lane', 'lean', 'lena', 'neal'] ['abel', 'able', 'bale', 'bela', 'elba'] >>> count 5 >>></python>