private static int FindTextQuickly(string pattern, string text)
{
int[] shiftTable = ShiftTable(pattern);
int i = pattern.Length - 1;
while (i < text.Length)
{
int k = 0;
while (k < pattern.Length && pattern[pattern.Length - 1 - k] == text[i - k])
{
k++;
}
if (k == pattern.Length)
{
return i - pattern.Length + 1;
}
else
{
i = i + shiftTable[(int)text[i]];
}
}
return NOT_FOUND;
}