Alex_tz307

Preffix Function

Apr 6th, 2021 (edited)
673
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.27 KB | None | 0 0
  1. vector<int> preffix_function(string &s) {
  2.   int N = s.length();
  3.   vector<int> pi(N + 1);
  4.   s = '#' + s;
  5.   for (int i = 2, q = 0; i <= N; ++i) {
  6.     while (q && s[q + 1] != s[i])
  7.       q = pi[q];
  8.     if (s[q + 1] == s[i])
  9.       ++q;
  10.     pi[i] = q;
  11.   }
  12.   return pi;
  13. }
Add Comment
Please, Sign In to add comment