Since people were really starting to take an interest in
the anagram problem posed at Is there a better way for finding anagrams?, why not golf
it?
The idea is to write a function which given a jumbled word, will find any matching entries in a supplied dictionary, and return an array of these qualifying matches. The word, and dictionary, are only expected to contain alphanumeric characters, although the dictionary may contain some stray material such as the odd bit of punctuation which can probably be ignored.
Here's my first pass that comes in just under three digits at 98 characters:
The idea is to write a function which given a jumbled word, will find any matching entries in a supplied dictionary, and return an array of these qualifying matches. The word, and dictionary, are only expected to contain alphanumeric characters, although the dictionary may contain some stray material such as the odd bit of punctuation which can probably be ignored.
Here's my first pass that comes in just under three digits at 98 characters:
sub a { sub z{join'',sort/./g}push(@{$d{&z}},$_)for(@{$_[1]});$w=z$_=$_[0];map +{@{$d{$_}}}grep{/$w/i}keys%d } # Test Stub open ($dict, "/usr/dict/words") || die "No words\n"; @dict = grep { chomp; } <$dict>; close ($dict); print a('geniretat',\@dict);
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: (Golf) Anagram Finder
by Masem (Monsignor) on Aug 04, 2001 at 10:10 UTC | |
by tachyon (Chancellor) on Aug 04, 2001 at 16:09 UTC | |
by chipmunk (Parson) on Aug 04, 2001 at 18:34 UTC | |
by tadman (Prior) on Aug 04, 2001 at 18:49 UTC | |
by Sartak (Hermit) on Jul 26, 2006 at 18:38 UTC |
Back to
Meditations