/¯
Size: a a a
/¯
EZ
V🇺
KK
A
A
f
A
A
f
A
f
f
KK
KK
f
AE
private static int[] zFucntion(String s) {
int n = s.length();
int z[] = new int[n];
for (int i = 1, l = 0, r = 0; i < n; ++i) {
if (i <= r) {
z[i] = Math.min(r - i + 1, z[i - l]);
}
while (i + z[i] < n && s.split("")[z[i]].equals(s.split("")[i + z[i]])) {
++z[i];
}
if (i + z[i] - 1 > r) {
l = i;
r = i + z[i] - 1;
}
}
return z;
}
private static final File inputFile = new File("input.txt");
private static final File outputFile = new File("output.txt");
public static void main(String[] args) throws IOException {
BufferedReader input = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile));
String data;
try {
while ((data = input.readLine()) != null) {
int[] prefixes = zFucntion(data);
StringBuilder outputData = new StringBuilder();
for (int i = 1; i < prefixes.length; i++) {
outputData.append(prefixes[i]).append(" ");
}
writer.write(outputData.toString().trim() + "\n");
}
} finally {
input.close();
writer.close();
}
}
f