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