JavaRush
Акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Не все пары ищет. Прошу подсказать в чем проблема
Ну, покоди!
32 уровень
  • 23.08.2020
  • 401просмотров
  • 11комментариев

Не все пары ищет. Прошу подсказать в чем проблема

Вопрос по задаче Обращенные слова
Java Multithreading,  2 уровень,  9 лекция
Решен

В методе main с консоли считать имя файла, который содержит слова, разделенные пробелами.
Найти в тексте все пары слов, которые являются обращением друг друга. Добавить их в result.
Использовать StringBuilder.
Кодировка файла - UTF-8.

Пример содержимого файла
рот тор торт о
о тот тот тот

Вывод:
рот тор
о о
тот тот

Требования:
  • Метод main должен считывать имя файла с клавиатуры.
  • В методе main должен быть использован StringBuilder.
  • В классе Solution должен содержаться вложенный класс Pair с методами equals, hashCode и toString. Удалять или изменять эти методы нельзя.
  • В классе Pair должен быть объявлен конструктор без параметров (или конструктор по умолчанию).
  • Список result должен быть заполнен корректными парами согласно условию задачи.
0
Комментарии (11)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #2322530
Уровень 41
23 августа 2020, 15:09
вот здесь ошибка. ты добавляешь только в том случае, если нет такой пары. нарушает уникальность
if (!result.contains(new Pair(words[i], words[j]))) {
    result.add(new Pair(words[i], words[j]));
}
0
Ну, покоди!
Уровень 32
23 августа 2020, 15:14
эти строчки для удаления дубликатов, если еще не было такой пары, то нужно добавить в лист. Но почему-то не добавляется первая пара "рот тор", хотя она считается уникальной
0
Ну, покоди!
Уровень 32
23 августа 2020, 15:17
for (int i = 0; i < words.length; i++) {
            for (int j = i + 1; j < words.length; j++) {
                if (words[i].equals(new StringBuilder(words[j]).reverse().toString())) {
//                    if (!result.contains(new Pair(words[i], words[j]))) {
                        result.add(new Pair(words[i], words[j]));
//                    }
                }
            }
        }
для проверки закоментировал условие на уникальность и в итоге получил: о о тот тот тот тот тот тот но первая пара "рот тор" все равно не попадает под это условие почему-то
0
hidden #2322530
Уровень 41
23 августа 2020, 15:19
выложи полный код, а не вырезку из main
0
hidden #2322530
Уровень 41
23 августа 2020, 15:24
все нормально попадает. а уникальность пар другим способом можно реализовать.
0
Ну, покоди!
Уровень 32
23 августа 2020, 15:28
выложил полный код
0
hidden #2322530
Уровень 41
23 августа 2020, 15:30
проверяй уникальность пар. "рот тор" добавляется без проблем. PS. если ты пользуешься OpenOffice, то это он косячит. используй редактор внутри Idea
+1
Ну, покоди!
Уровень 32
23 августа 2020, 15:38
да, через редактор внутри Idea нашел эту пару. Через Notepad терялась почему-то. спасибо. буду дальше над уникальностью работать, чтобы прошло условие
0
hidden #2322530
Уровень 41
23 августа 2020, 15:41
рот тор торт о
о тот тот тот
тот тор трот
тор рот тот
тут как минимум 6 пар.
0
Ksenia VolkovaJava Developer в DXCMaster
23 августа 2020, 16:00
Notepad добавляет BOM в начало файла
+1
hidden #2322530
Уровень 41
23 августа 2020, 16:12
а я в как - то в одном из вопросов видел этот юникод, и все искал к чему люди с ним мучаются
U+FEFF
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush