Я решил решить проблему поиска заданных символов в строке.И я решил это двумя способами:
Первый (использование хеш-таблицы для хранения значений в 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);
}
}
}
}
И все отлично работает!Вопрос, который я хотел бы задать, - какой из них лучше, и есть ли еще лучшие решения этой проблемы?
Заранее спасибо!