Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: Simple regex wordlist question

by Zaxo (Archbishop)
on Sep 11, 2007 at 05:24 UTC ( #638228=note: print w/ replies, xml ) Need Help??


in reply to Simple regex wordlist question

That's an anagram problem, which has a canonical answer. First absorb your dictionary in a hash:

my %words; { open my $fh, '<', '/path/to/dict.txt' or die $!; while <$fh> { chomp; my $key = join '', sort split ''; push @{$words{$key}}, $_; } }

That collects your data, now just rearrange your input word to make a key and print the associated words:

my $word = <>; # or however you get it chomp; $word = join '', sort split '', $word; print "@{$words{$word}}\n";
Alphabetizing and mushing together the characters of a word provides a key for anagrams..

If this is used a lot or the dictionary is big, you may want to keep the "hash" in a database.

After Compline,
Zaxo


Comment on Re: Simple regex wordlist question
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://638228]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (6)
As of 2015-07-07 01:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (86 votes), past polls