Я ищу проблему, которая просит вернуть число позиций, где две заданные строки содержат одну и ту же длину 2 подстроки. Итак, «xxcaazz» и «xxbaaz» дают 3, так как подстроки «xx», «aa» и «az» появляются в одном и том же месте в обеих строках. Решение считается следующее:Почему не исключение из-за пределов?
public int stringMatch(String a, String b) {
// Figure which string is shorter.
int len = Math.min(a.length(), b.length());
int count = 0;
// Look at both substrings starting at i
for (int i=0; i<len-1; i++) {
String aSub = a.substring(i, i+2);
String bSub = b.substring(i, i+2);
if (aSub.equals(bSub)) { // Use .equals() with strings
count++;
}
}
return count;
}
Я не понимаю, почему нет из-за границы для исключения этого решения. Если, например, есть две строки, введенные с длиной 6 и 7 соответственно, в финальной итерации цикла for, i = 5. Но тогда для подстроки меньшей строки заданные параметры были бы (5,7), хотя конечный индекс строки равен 5. В предыдущих задачах я, похоже, вывел исключение за пределы в аналогичном случае. Почему не здесь? Вся помощь очень ценится.
Отметьте свой вопрос, с какого языка вы используете - это будет началом. –