Bei einer Reihe von Wörtern müssen wir die Anagrammwörter finden und jede Kategorie alleine mithilfe des besten Algorithmus anzeigen.
Eingabe:
man car kile arc none like
Ausgabe:
man
car arc
kile like
none
Die beste Lösung, an der ich gerade arbeite, basiert auf einer Hashtabelle, aber ich überlege, wie ich eine Gleichung entwickeln kann, um Anagrammwörter in einen ganzzahligen Wert umzuwandeln.
Beispiel: man => 'm'+'a'+'n' aber das würde keine eindeutigen Werte liefern.
Irgendwelche Vorschläge?
Sieh dir den folgenden Code in C# an:
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 besteht darin, die Methode GetUniqueInts(string [])
zu entwickeln.