【发布时间】:2010-09-28 14:27:13
【问题描述】:
给定一组单词,我们需要找到字谜单词并使用最佳算法单独显示每个类别。
输入:
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 [])方法。
【问题讨论】:
-
所以你想要一个散列函数,它为不同顺序的相同字母组合返回相同的散列,每个字母组合都有一个唯一的散列(没有错误匹配)?
标签: algorithm anagram data-processing