Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void DoSearchBM(string text, string word)
- {
- int[] d = new int[256];
- for (int i = 0; i < 256; i++)
- {
- for (int j = word.Length; j > 0; j--)
- {
- if (i == word[j-1])
- { d[i] = word.Length - j; break; }
- else
- d[i] = word.Length;
- }
- }
- int mark = word.Length - 1;
- while (mark <= text.Length )
- {
- int counter = 0;
- for (int i = mark, j = word.Length - 1; i > mark - word.Length && j >= 0;i--, j--)
- {
- if (word[j] == text[i])
- if (counter == word.Length - 1)
- {
- Console.WriteLine("Слово \"{0}\" знаходиться у рядку \"{1}\" за iндексом {2} ", word, text, i); return;
- }
- else { counter++; continue; }
- else
- {
- if (d[text[i + counter]] == 0) { mark++; break; } else { mark += d[text[i + counter]]; break; }
- }
- }
- }
- Console.WriteLine("Слово \"{0}\" вiдсутнє у рядку \"{1}\"", word, text);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement