Учитывая набор слов, нам нужно найти слова анаграмм и отобразить каждую категорию самостоятельно, используя лучший алгоритм.
ввод:
man car kile arc none like
выход:
man
car arc
kile like
none
Лучшее решение, которое я сейчас разрабатываю, основано на хэш-таблице, но я думаю об уравнении для преобразования слова анаграммы в целочисленное значение.
Пример: man = > 'm' + 'a' + 'n', но это не даст уникальных значений.
Любое предложение?
Смотрите следующий код на С#:
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]));
}
}
Проблема заключается в том, как разработать метод GetUniqueInts(string [])
.