Иногда их тесты пропускают вольные решения с оптимизацией, а иногда параноидально банят любые попытки не то что вольнодумства, а банального улучшения задачки.
Вот задача
/* Set из котов
1. Внутри класса Solution создать public static класс кот – Cat.
2. Реализовать метод createCats, он должен создавать множество (Set) котов и добавлять в него 3 кота.
3. В методе main удалите одного кота из Set cats.
4. Реализовать метод printCats, он должен вывести на экран всех котов, которые остались во множестве. Каждый кот с новой строки.
*/
Самая коровка спряталась в пункте 1. Несмотря на операторы print и другие логичные мысли (кто будет добавлять абстрактных пустых котов?), класс Cat должен быть абсолютно пустым - иначе ты не пройдешь тест. То есть
public static class Cat {
}
Любые попытки добавить что-то - имя и последующее переопределение toString - карается роботом. Похоже, в реальности требуются солдаты, которые не пишут ничего сверх того, что в задании. Создать массив из котов - ок. Извините, а про имена ничего не говорилось, хыхы.
Тем не менее, иногда у них случаются проблески и робот пропускает работающее, но "вольнодумное" решение. Видимо, тесты пишет несколько человек. Один из них - моделирует настоящего корпоративного мудака. Спасибо за науку.
Мораль: решая задачки в JavaRush, не пытайтесь думать "как лучше в жизни", "как интереснее", "как правильнее для юзера". Думайте "как по заданию". Первую задачу про котов я сдал с 9й попытки, как лузер. Зато вторую, вспомнив, что тут муштра, а не рандомный бой в Мире Танков, сдал с 1й.