【发布时间】:2017-06-25 19:45:30
【问题描述】:
我关心的是向字符串数组添加字符串,但我想在插入数组之前确保该字符串是唯一的。我搜索并找到了很多方法,但我担心的是更快,而不是在添加字符串之前检查所有数组元素是否重复,所以我决定执行以下操作:
- 获取字符串(来自 URL Mining Project 的 URL,可能会返回数千个 URL,有时可能会重复,如交叉引用)。
- 获取 URL 中所有字符的 ASCII 并将它们相加乘以 char 的索引(这是为了使每个 URL 具有唯一标识符)。
- 第 2 点中的这个值将是数组中插入这个 URL 的索引。
- 现在的问题是,这个数组应该是动态的(如何根据我正在挖掘的 URL 数量调整它的大小?)。
- 数组将是多孔的(意味着数组有许多空值),是否有任何有效的方法来获取只有值的单元格?
- 以下代码用于获取唯一字符串的位置。
int index = 1;
int position = 0;
string s = Console.ReadLine();
byte[] ASCIIValues = Encoding.ASCII.GetBytes(s);
foreach(byte b in ASCIIValues)
{
position += b * index;
index++;
Console.WriteLine(b);
}
【问题讨论】:
-
为什么不使用列表 (
List<T>)?您可以随时检查list.Contains(value)。或.Add(value). -
或者只使用哈希算法 (SHA256) 并将其插入字典。您可以在插入之前检查相同的哈希是否存在。
-
你可以试试 DateTime.Now().ToString() 我永远是独一无二的
-
我会尝试使用这种技术