Вот моя попытка этого метода.
Подсчитайте количество совпадений непустой подстроки sub в строке str E.g.
numOccurances("dogmonkeydog","собака") вернет 2
numOccurances("dogmonkeydog","mon") вернет 1
numOccurances("dogmonkeydog", "корова") вернет 0
public static int numOccurrences(String str, String sub) {
int result = 0;
int pos = str.indexOf(sub);
if (pos == -1){
return result;
}
if (sub.length() > str.length()){
return result;
}
if ((str.substring(0, sub.length())).equals(sub)){
result++;
String st = str.substring(pos);
return result + numOccurrences(st, sub); //Line 87
}
else{
String st = str.substring(sub.length());
return result + numOccurrences(st, sub);
}
}
Я получаю этот отказ для всех тестов, где результат> 0
java.lang.StackOverflowError
at java.lang.String.indexOf(String.java:1718)
at java.lang.String.indexOf(String.java:1698)
at eecs2030.lab6.RecursiveTasks.numOccurrences(RecursiveTasks.java:77)
at eecs2030.lab6.RecursiveTasks.numOccurrences(RecursiveTasks.java:87)
Я не уверен, почему мой код никогда не достигает своего базового варианта, любое понимание будет высоко оценено!