Trouver les anagrammes d'un mot donné

Deux mots sont des anagrammes si l'un d'eux a exactement les mêmes caractères que celle d'un autre mot.

Exemple : Anagram & Nagaram sont des anagrammes (insensible à la casse).

Maintenant il ya beaucoup de questions similaires à ce . Un couple d'approches pour trouver si les deux chaînes sont des anagrammes sont :

1) Sort les cordes et de les comparer.

2) Créer un frequency map de ces chaînes et de vérifier si elles sont identiques ou non.

Mais dans ce cas , nous sont données avec un mot (par souci de simplicité, nous supposons un seul mot seulement, et il sera seul mot anagrammes seulement) et nous avons besoin de trouver les anagrammes pour que.

Solution que j'ai à l'esprit est que , nous pouvons générer toutes les permutations de la parole et de vérifier lequel de ces mots existe pas dans le dictionnaire . Mais clairement , c'est très inefficace. Oui , le dictionnaire est aussi disponible.

Donc quelles alternatives avons-nous ici ?

J'ai aussi lu dans un même thread que quelque chose peut être fait en utilisant Tries mais la personne n'a pas expliqué à ce que l'algorithme était et pourquoi nous utilisons un Trie dans la première place , juste une mise en œuvre a été fourni que de trop en Python ou Ruby. Donc ce n'était pas vraiment utile, c'est pourquoi j'ai créé ce fil. Si quelqu'un veut partager leur mise en œuvre (autre que C,C++ ou Java), puis de bien vouloir l'expliquer aussi.

  • Quelque chose pour vous aider à la recherche d'une réponse: stackoverflow.com/questions/7896694/... Fondamentalement, ce que vous pouvez faire est d'avoir de fonction de hachage qui rapporte la même valeur pour les anagrammes, et ensuite de les convertir votre dictionnaire à une structure qui permet de récupérer la liste des mots tels hachage.
  • Que voulez-vous vraiment faire ? Trouver tous les anagrammes qui existe dans un dictionnaire à partir d'un ensemble donné de lettres ? Ou de construire une anagramme rapport sur tous les mots dans un dictionnaire, c'est à dire étant donné un mot dans le dictionnaire, récupérer de manière efficace tous les valides anagrammes ?
  • Étant donné un dictionnaire avec un ensemble fixe de mots , et un mot au hasard (ou peut-être pas dans le dictionnaire) , trouver ses anagrammes (qui sont présents dans le dictionnaire). Du sens?
InformationsquelleAutor h4ck3d | 2012-09-18