Advertisement
Guest User

Untitled

a guest
Feb 24th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. // Поиск максимальной грани для подстроки
  2. int findBorder(string input, int index, char newChar, int* bordersArray)
  3. {
  4. if (index == 0) // подстрока из одного элемента не имеет собственных граней
  5. return 0;
  6. int lastBorderLength = bordersArray[index - 1]; // длина максимальной грани предыдущей подстроки
  7.  
  8. if (input[lastBorderLength] == newChar) // если символ совпал с последним, то грань увеличилась на 1
  9. return lastBorderLength + 1;
  10. else if (lastBorderLength == 0) // если последняя грань была нулевой, то ничего не изменилось
  11. return 0;
  12. else
  13. return findBorder(input, lastBorderLength, newChar, bordersArray); // ищем подстроку, в которой символ будет входить в грань
  14. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement