Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- #define suni ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
- #define ll long long
- #define tc int tc;cin>>tc;while(tc--)
- #define pb push_back
- #define endl "\n"
- #define spc " "
- #define yes "YES"
- #define no "NO"
- #define loop for(int i=0;i<n;i++) cin>>a[i]
- #define loop1 for(int i=0;i<n;i++) cin>>b[i]
- #define loop2 for(ll i=0;i<n;i++) cin>>c[i]
- #define beg begin()
- #define en end()
- vector<int>prefix_function(string s){
- int m=s.size(),j;
- vector<int>pi(m,0);
- for(int i=1;i<m;i++){
- j=pi[i-1];
- while(j>0 && (s[i]!=s[j])) j=pi[j-1];
- if(s[i]==s[j]){
- j++; pi[i]=j;
- }
- }
- return pi;
- }
- int main()
- {
- suni;
- string s; cin>>s;
- vector<int>v=prefix_function(s);
- for(auto x : v) cout<<x<<" ";
- cout<<endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement