Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- vector<int> z_function(string s)
- {
- vector<int> z(s.size(), 0);
- for(int i = 1, l = 0, r = 0; i < s.size(); i++)
- {
- if(i <= r)
- z[i] = min(r - i + 1, z[i - l]);
- while(i + z[i] < s.size() && s[z[i]] == s[i + z[i]])
- z[i]++;
- if(i + z[i] >= r)
- l = i, r = i + z[i] - 1;
- }
- return z;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement