Advertisement
Guest User

SearchBM

a guest
Apr 25th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.41 KB | None | 0 0
  1. public void DoSearchBM(string text, string word)
  2.         {
  3.             int[] d = new int[256];
  4.             for (int i = 0; i < 256; i++)
  5.             {
  6.                 for (int j = word.Length; j > 0; j--)
  7.                 {
  8.                     if (i == word[j-1])
  9.                     { d[i] = word.Length - j; break; }
  10.                     else
  11.                         d[i] = word.Length;
  12.                 }
  13.  
  14.             }
  15.             int mark = word.Length - 1;
  16.             while (mark <= text.Length )
  17.             {
  18.                 int counter = 0;
  19.                 for (int i = mark, j = word.Length - 1; i > mark - word.Length && j >= 0;i--, j--)
  20.                 {
  21.                         if (word[j] == text[i])
  22.                             if (counter == word.Length - 1)
  23.                             {
  24.                                 Console.WriteLine("Слово \"{0}\" знаходиться у рядку \"{1}\" за iндексом {2} ", word, text, i); return;
  25.                             }
  26.                             else { counter++; continue; }
  27.                         else
  28.                         {
  29.                             if (d[text[i + counter]] == 0) { mark++; break; } else { mark += d[text[i + counter]]; break; }
  30.                         }
  31.                 }
  32.             }
  33.             Console.WriteLine("Слово \"{0}\" вiдсутнє у рядку \"{1}\"", word, text);
  34.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement