почему не пропускает
package com.javarush.task.task27.task2701;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
/*
Избавляемся от меток
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String string = reader.readLine();
String substring = reader.readLine();
if (isSubstringPresent(substring, string)) {
System.out.println("String: \n" + substring + "\nis present in the string: \n" + string);
} else {
System.out.println("String: \n" + substring + "\nis not present in the string: \n" + string);
}
}
static boolean isSubstringPresent(String substring, String string) {
if (substring.length() < 1 || string.length() < 1) {
return false;
}
string.contains(substring);
char[] subChars = substring.toCharArray();
int[] PI = new int[subChars.length];
char[] strChar = string.toCharArray();
int i = 1;
int j = 0;
PI[0] = 0;
while (i != PI.length) {
if (subChars[j] != subChars[i]) {
if (j == 0) {
PI[i] = 0;
i++;
} else {
j = PI[j - 1];
}
} else {
PI[i] = j + 1;
i++;
j++;
}
}
return contains(strChar, subChars, PI);
}
private static boolean contains (char[] strChar, char[] subChars, int[] PI) {
int i = 0;
int j = 0;
while (true) {
if (strChar[i] == subChars[j]) {
i++;
j++;
if (j == subChars.length) {
return true;
}
} else if (strChar[i] != subChars[j]) {
if (j > 0) {
j = PI[j - 1];
} else {
i++;
if (i == strChar.length) {
return false;
}
}
}
}
}
}