Всем доброго дня!
Блин вроде не сложная задача, но не такая уж и простая оказалась. Вроде бы все условия выполнены. Подскажите примером. Пока не вижу ошибки.
package com.javarush.task.task27.task2701;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/*
Избавляемся от меток
*/
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) {
boolean found = false;
int i=-1;
int k, h;
if (substring.length()<=string.length()) {
do {
if (i < string.length() - 1) i++;
k = 0;
h = 0;
while (h < substring.length()) {
if (string.charAt(h + i) == substring.charAt(h)) k++;
else k--;
if ((h == 0 && string.charAt(h + i) != substring.charAt(h)) || i == string.length() - 1)
h = substring.length();
if (k == substring.length()) {
found = true;
i = string.length();
} else found = false;
if (h < substring.length()) h++;
}
} while (i < string.length() - 1);
}
return found;
}
}