Advertisement
keverman

pi function

Feb 9th, 2020
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.25 KB | None | 0 0
  1. vector<int> pi_function(string P)
  2. {
  3.     std::vector<int> pi = {0};
  4.     for(int i = 1, k = 0; i < P.size(); i++)
  5.     {
  6.         while(k > 0 && P[i] != P[k])
  7.             k = pi[k - 1];
  8.         pi.push_back(k += P[i] == P[k]);
  9.     }
  10.     return pi;
  11. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement