単語のセットが与えられた場合、アナグラムの単語を見つけて、最適なアルゴリズムを使用して各カテゴリのみを表示する必要があります。
入力:
man car kile arc none like
出力:
man
car arc
kile like
none
私が現在開発している最善の解決策はハッシュテーブルに基づいていますが、アナグラムワードを整数値に変換する方程式について考えています。
例:man =>'m' +'a' +'n'ですが、これでは一意の値は得られません。
なにか提案を?
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]));
}
}
問題は、メソッドをどのように開発するかGetUniqueInts(string [])
です。