Всем привет! Надо найти пары. Пары находятся. Но товарЕщ считает, что они ему не подходят, не корректны они ему. Почему???
??
?
В методе main с консоли считать имя файла, который содержит слова, разделенные пробелами.
Найти в тексте все пары слов, которые являются обращением друг друга. Добавить их в result.
Использовать StringBuilder.
Кодировка файла - UTF-8.
Пример содержимого файла рот тор торт о
о тот тот тот
Вывод: рот тор
о о
тот тот
Требования:
Метод main должен считывать имя файла с клавиатуры.
В методе main должен быть использован StringBuilder.
В классе Solution должен содержаться вложенный класс Pair с методами equals, hashCode и toString. Удалять или изменять эти методы нельзя.
В классе Pair должен быть объявлен конструктор без параметров (или конструктор по умолчанию).
Список result должен быть заполнен корректными парами согласно условию задачи.
рот тор торт о
о тот тот тот
рот стор
тот
acca
0
Комментарии (1)
популярные
новые
старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
1. После того как нашли пару сначала удаляем _второй_ элемент пары (под индексом j или pair.second), а потом первый, для того чтобы индексы не сдвинуть.
2. После удаления пары (в обратном порядке) присваиваем i = -1, j = -1, для того чтобы оказаться в начале цикла и делаем break.
3. Обрубаем пробелы при помещении в StringBuilder и в условии. Плюс прибавляем к условию && (i != j). _На всякЕй случай_. Ну мало ли.
Соответственно в first и second присваиваем тоже без пробелов: list.get(i).trim() и list.get(j).trim()
Важно! Это не оптимизированный пробег по циклам. В случае, когда при прохождении круга слову не находится пара, при обнулении индексов и возврате к началу цикла мы пробегаем с этим ненужным словом по второму циклу вновь и вновь, по количеству оставшихся слов. Потому что я убирала из списка только ПАРЫ! а не СЛОВА БЕЗ ПАРЫ! И число холостых пробегов увеличивается на количество БЕЗПАРНЫХ СЛОВ.
Можно поставить флаг и удалять это лишнее слово по флагу, будете молодцом. Но в принципе Валюша все съел.
P.S. Вот когда будете миллиард строк обрабатывать, наверное придется с этим что-то сделать.