Обращенные слова

  • 24
  • Недоступна
В методе main с консоли считать имя файла, который содержит слова, разделенные пробелами. Найти в тексте все пары слов, которые являются обращением друг друга. Добавить их в result. Использовать StringBuilder. Кодировка файла - UTF-8.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (279)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Leo 23 уровень, Москва
понедельник, 16:57
Задача в стиле "Угоди валидатору, не понимая условия до конца." Спасибо отзывчивому сообществу за помощь. Мои пожелания: добавьте пример ввода/вывода более показывающий суть алгоритма задачи, ну или изменить текущий пример на более сложный. Вы решили задачу лучше, чем 14% учеников. Вам удалось ее решить с 7 попытки. Среднее количество попыток для этой задачи 4.07. Всего эту задачу решили 9060 учеников.
Buyanto 25 уровень
19 ноября, 01:24
Условие задачи желает лучшего! Больше всего времени уходит, чтобы понять, что требуют от тебя. Читаешь условие, не понимаешь, что нужно делать, затем идешь в обсуждении и начинаешь вникать. Таким образом уходит достаточно много времени. Я не понимаю, почему разработчики JavaRush не могут исправить условия задачи в материалах!?
Dmitry 25 уровень
18 ноября, 05:39
В условие следует добавить пункт о необходимости сохранять повторяющиеся пары. Поскольку вообще такая необходимость неочевидна. Ну или сделать пример, из которого ясно, что нужно делать именно так.
DZ 29 уровень
4 ноября, 00:51
Спасибо (@__@) с его стихотворением от 10 июля: протестил свой код вдоль и поперёк. Подтверждаю, что в списке должны быть и повторы, хотя по условию задачи, их там быть не должно
Rodden Tod 26 уровень
2 ноября, 19:59
тупейшая задача. еще более тупой валидатор.
Ярослав 26 уровень, Полтава
29 сентября, 13:18
Сначала сделал одну строку из всего текста, масив из строки через сплит по пробелу, и решил двумя циклами. Значением из первого бежал по второму, если есть совпадение(значение в первом и реверс значения во втором) присваивал обеим ячейкам массива null, после чего break во втором цикле. Пропуская в каждом цикле итерацию если значение равно null и пропуская итерацию во втором цикле если count из первого совпадает с count-ом второго.
Алексей QA Automation Engineer в Sberbank
22 сентября, 21:39
Добавлю свой комментарий по решению задачи. Долго боролся с валидатором по последнему пункту и пришел к тому, что следует помечать уже найденные слова. Сохранял их индексы в Set и при каждой итерации цикла проверял, нет ли в сете текущих индексов. Если нет - можно сравнивать.
wan-derer.ru 33 уровень, Москва
21 сентября, 08:16
Не обязательно заводить второй массив. Т.к. это наш массив, который мы сами сделали, мы можем портить его как захотим :) Я менял найденное второе слово на null. Правда, пришлось в двух местах добавить проверку на null. Тест из комментариев, который начинается с "валидатор дятел...." помог отладить программу :)
Zhan Peskov 32 уровень, Москва
19 сентября, 19:13
Решил достаточно быстро акромя не понял то что повторяющиеся пары тоже надо сохранять 4 слова "тот" должны сохранятся в 2 пары !!! и т.д. И не понял зачем в задании создавать пустой консруктор класса Pair если он и так по умолчанию применяется. Короче не создавал и Валя пропустила
Stealth 23 уровень, Москва
11 сентября, 10:53
Да, эта задача смело может бороться за звание самой корявой по составленному условию и валидации на JavaRush. По крайней мере для меня на данный момент. Первый вариант сделал через Set с фильтрацией по найденным, чтобы исключить дублирование, прекрасно все находило пары и вывод соответствовал заданию (вот этому короткому тесткейсу). Использовал Set, потому как во входном файле слова, вроде как, в разнобой идут и тогда логично, что нужны только уникальные пары. Но нет, пятый пункт валидации не проходим. Ок. Убрал фильтрацию. Теперь находятся и дублирующие совпадения ("тот тот" два раза), вроде кто-то в комментах писал, что нужно и дубликаты находить. Но все равно нет, по пятому пункт. Ладно. Забил на Set, сделал через List. Теперь находит вообще все подряд обращенные пары слов, сколько бы они в тексте не повторялись. Проверял и с исключениями найденных пар из листа и без исключения - все равно результат один. Пятый пункт не выполнен. Забил на угадывания и тупо перенабрал дикий говнокод (извини diN), на выходе получил лютую дичь (например, на входных данных со словами и числами, тоже из комментариев, получил на выходе перевернутые слова и просто продублированные числа). А валидатор все принял. Типа норм!!! Ну какого, спрашивается, так криво составлять условия или так косо делать тесты для валидатора, что в итоге проходят решения, которые вообще не соответствуют условиям??? P.S. Решающим могу посоветовать даже не пытаться делать самостоятельно, а просто сразу искать пост diN за июль 2020 и тупо перенабирать код со скрина. Ничего нового, решая самостоятельно, вы не получите, но зато не потратите кучу времени и нервов.