z function added

This commit is contained in:
vakhokoto
2020-07-11 00:58:58 +04:00
parent 4e058def82
commit 7a4d6b2544

29
Strings/ZFunction.java Normal file
View File

@ -0,0 +1,29 @@
package Strings;
public class ZFunction {
private String s;
public ZFunction(String s){
this.s = s;
}
public int[] getArray(){
int length = s.length();
int[] z = new int[length];
int l = 0, r = 0;
for (int i=0; i<length; i++){
if (i > l && i <= r){
z[i] = Math.min(z[i - l], r - i + 1);
}
while (i + z[i] < length && s.charAt(z[i]) == s.charAt(i + z[i])){
z[i]++;
}
if (i + z[i] > r){
l = i;
r = i + z[i] - 1;
}
}
return z;
}
}