Учитывая строку и непустую подстроку sub, вычислите рекурсивно самую большую подстроку, которая начинается и заканчивается суб и возвращает его длину.puzzling recursion with java
strDist("catcowcat", "cat") → 9
strDist("catcowcat", "cow") → 3
strDist("cccatcowcatxx", "cat") → 9
мое решение
public int strDist(String str, String sub) {
int i = sub.length();
int j = str.length();
int count = 0;
if (str.length() == 1 && str.equals(sub)) {
return 1;
} else if (str.length() < sub.length() || str.length() <= 1) {
return 0;
}
if (str.substring(0, i).equals(sub)) {
if (str.substring(str.length() - i, str.length()).equals(sub)) {
return str.length();
} else {
strDist(str.substring(0, str.length() - i), sub);
}
} else {
strDist(str.substring(1, str.length()), sub);
}
return 0;
}
скажите мне, как исправить мой код?
Это выглядит как прекрасная возможность, чтобы узнать, как использовать отладчик. – NPE
Прежде всего отпечатайте свой код, чтобы лучше видеть объем методов/кодовых блоков/переменных. Это отличная помощь при отслеживании ошибок. – Pshemo
Связанный: http://stackoverflow.com/questions/21292131/1075247/ – Pureferret