The5threic1-1

Z-Function-template

Sep 3rd, 2024
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.32 KB | Source Code | 0 0
  1. vector<int> z_fun(string s)
  2. {
  3.     int n = s.size();
  4.     vector<int> ans(n, 0);
  5.     int l = 0, r = 1;
  6.     for(int i=1; i<n; i++)
  7.     {
  8.         if(i<r)
  9.         {
  10.             ans[i] = min(r-i, ans[i-l]);   
  11.         }
  12.         while(i+ans[i]<n && s[i+ans[i]]==s[ans[i]])
  13.         {
  14.             ans[i]++;
  15.         }
  16.         if(i+ans[i]>r)
  17.         {
  18.             r = i + ans[i];
  19.             l = i;
  20.         }
  21.     }
  22.     return ans;
  23. }
Advertisement
Add Comment
Please, Sign In to add comment