in reply to Another word puzzle with too many permutations

Maybe you could sort the letters of each word into alphabetic order and use a hash to make the link between sorted words and real words. Then also sort your input letters. I am not sure right now on how to go from there (possibl building a HoH), but I think that "normalizing" the words this way should enable you to do much faster lookup.

  • Comment on Re: Another word puzzle with too many permutations

Replies are listed 'Best First'.
Re^2: Another word puzzle with too many permutations
by sarchasm (Acolyte) on Oct 15, 2013 at 17:28 UTC
    I've thought about that. Either sorting the letters in each word into alphabetical order or keeping a total of each letter being used for each word and building a process to compare against the available pool of letters. It is similar to the word based approach but I keep thinking it might be faster. I'm just not sure where to begin that process yet. Thanks for the reply.

      I think that the best is to start from your list of words. Let's assume for a moment (to simplify the problem) that each letter can come only once both in the list and in each of the words. Check each word, if it has at least one letter not in your list of letters,remove it from the list. At the end, the words still in the list can all be built with with your list of letters. You don't need to test letter combinations, but just to examine each word once. Having sorted your words and your list makes it fast and easy to check whether the letters of words are all in the list of letters.

      With some letters being there more than once, it is slightly more complicated, but not so much. You only need to check for each word if you have the right amount of each letter in the list.

      This can be extremely fast.

      EDIT: I had not seen Rolf's post when I posted mine, but it is essentially the same idea.