我决定解决在字符串中查找给定字符的问题,并且我用了两种方法解决:
第一种方法(使用哈希表来保持我们想要查找的字符的ASCII值):
static void Hash(string text, char[] charsToFind)
{
Dictionary<int,char> chars = new Dictionary<int,char>();
foreach (var letter in charsToFind)
{
chars[(int)letter] = letter;
}
foreach (var letter in text)
{
if (chars.ContainsKey((int)letter))
{
if (letter == chars[(int)letter])
{
Console.WriteLine("Element found at: {0}, value: {1}", (int)letter, letter);
}
}
}
}
第二种方法(朴素的)是:
static void Naive(string text, char[] charsToFind)
{
foreach (var letter in text)
{
foreach (var character in charsToFind)
{
if ((int)letter == (int)character)
{
Console.WriteLine("Element found at: {0}, value: {1}", (int)letter, letter);
}
}
}
}
一切都运行良好!我想问的问题是哪种方法更好,是否有更好的解决方案?
提前感谢!
for(int i = text.Length - 1; i > -1; i--) chars[text[i]] = text[i];
来填充它。 - Alxandr