Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function getZ(string) {
- const Z = new Array(string.length).fill(0);
- Z[0]=0;
- let l=0, r=0;
- for(let i=1; i<= string.length - 1; i++){
- if(i>r){
- l=r=i;
- while(r<=string.length - 1 && string[r-l]==string[r]){
- r++;
- }
- Z[i]=r-l;
- r--;
- }
- else{
- let k = i-l;
- if(Z[k] < r-i+1){
- Z[i]=Z[k];
- }
- else{
- l=i;
- while(r<=string.length - 1 && string[r-l]==string[r]){
- r++;
- }
- Z[i]=r-l;
- r--;
- }
- }
- }
- return Z;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement