Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Поиск максимальной грани для подстроки
- int findBorder(string input, int index, char newChar, int* bordersArray)
- {
- if (index == 0) // подстрока из одного элемента не имеет собственных граней
- return 0;
- int lastBorderLength = bordersArray[index - 1]; // длина максимальной грани предыдущей подстроки
- if (input[lastBorderLength] == newChar) // если символ совпал с последним, то грань увеличилась на 1
- return lastBorderLength + 1;
- else if (lastBorderLength == 0) // если последняя грань была нулевой, то ничего не изменилось
- return 0;
- else
- return findBorder(input, lastBorderLength, newChar, bordersArray); // ищем подстроку, в которой символ будет входить в грань
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement