Algorithmus zum Gruppieren von Anagrammwörtern

Wenn wir eine Reihe von Wörtern haben, müssen wir die Anagrammwörter finden und jede Kategorie unter Verwendung des besten Algorithmus alleine anzeigen.

Eingang

man car kile arc none like

Ausgabe

man
car arc
kile like
none

Die beste Lösung, die ich jetzt entwickle, basiert auf einer Hash-Tabelle, aber ich denke über eine Gleichung nach, um ein Anagrammwort in einen ganzzahligen Wert umzuwandeln.

Beispiel: man => 'm' + 'a' + 'n', es werden jedoch keine eindeutigen Werte angegeben.

Irgendein Vorschlag

Siehe folgenden Code in C #:

string line = Console.ReadLine();
string []words=line.Split(' ');
int[] numbers = GetUniqueInts(words);
for (int i = 0; i < words.Length; i++)
{
    if (table.ContainsKey(numbers[i]))
    {
        table[numbers[i]] = table[numbers[i]].Append(words[i]);
    }
    else
    {
        table.Add(numbers[i],new StringBuilder(words[i]));
    }

}

Das Problem ist, wie man sich entwickeltGetUniqueInts(string []) Methode

Antworten auf die Frage(28)

Ihre Antwort auf die Frage