Вот этот код валидатор принял:
for (int k = 0; k < arr.size()-1; k++){
if (arr.get(k+1).length() < arr.get(k).length()){
System.out.println(k+1);
break;
}
}
А этот ему не понравился:
for (int k = 0; k < arr.size(); k++){
int l = k+1;
if (arr.get(k).length() > arr.get(l).length()){
System.out.println(l);
break;
}
}
Может, на ночь глядя, у меня уже глаз замылен и я очевидного не вижу... Но пока реально не вижу ошибки. Разницу вижу только в моменте проверки следующего элемента и знак сравнения в другу сторону.