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

  • 12
  • Недоступна
В методе main с консоли считать имя файла, который содержит слова, разделенные пробелами. Найти в тексте все пары слов, которые являются обращением друг друга. Добавить их в result. Использовать StringBuilder. Кодировка файла - UTF-8.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (169)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Дмитрий24 уровень
25 июля, 14:58
Очень странный валидатор. Долго боролся. Результат нормальный был при самых сложнейших тестах. И помимо прочего не проходил 4 пункт, про конструктор. Посмотрел, много у кого валидатор принимал с написанным конструктором с параметрами, но у меня почему-то нет! В результате скопировал чужое решение и сдал. С конструктором с параметрами)))
Константин Кшнякин24 уровень, Москва
24 июля, 08:40
Тестируйте на этом товарищи : рот тор торт о о тот тот тот acca Сохранить в Notepad++; Вы решили задачу лучше, чем 9% учеников. Вам удалось ее решить с 9 попытки. Среднее количество попыток для этой задачи 3.92. Всего эту задачу решили 6877 учеников.
Юрий25 уровень
29 июля, 18:54
Спасибо, мил человек. После этих входных данных сразу понял, где не досмотрел по условиям.
Сергей25 уровень
19 июля, 18:25
Про какой бой тут пишут? Создать объекты Pair из массива слов,сравнить их между собой и занести в список.
Dmitry Potamoshnev30 уровень, Москва
8 июля, 16:28
Бой с валидатором да и только. Ни один совет не помог, пришлось шерстить чужие решения и пытаться понять чем моё решение отличается от других, в итоге - валидатор пропускает очень сомнительные решения.
skybright33 уровень
22 июня, 21:39
Задача оказалось сложнее, чем думал. 4 часа. Каждую проблему пришлось решать, вплоть до полностью переписанного кода. Но зная их список, можете управиться за 30 минут. Если вы думаете, что все работает (вывод соответствует примеру), но валидатор вас не пропускает: 1. Проверьте длину искомых слов. Качаем наконец Notepad++, если еще не установили, ибо "Блокнот" задолбал. 2. Проверяем что слова типа "тот" имеют пары. 3. Проверяем что пары могут повторяться - они не уникальны! 4. Проверяем случаи, когда одно слово содержит другое. тестируйте примерно на таком файле: рот стор торт о рот тор рот о тот о о вывод (порядок скорее всего не важен): о о о о рот тор
Галина28 уровень, Москва
18 июня, 20:00
Убила 3 попытки, добавляя пары: рот рот.. А надо: рот тор ... Будьте внимательны :)
АртемGeek25 уровень, Москва
12 июня, 11:24
Пришел к выводу . что можно не проверять правильную последовательность букв в слове, а достаточно проверить равно ли первоначальное слово , перевернутой копии. Если оно не будет равно, значит уже по умолчанию слов с правильной последовательностью нет в строке.
if (strings[i].trim().equals(new StringBuilder(strings[j].trim()).reverse().toString())) {
Этого будет достаточно. Соответственно если true и такая последовательность не содержится в result , то добавляем.
Aleksei Dobrovolskii23 уровень
7 июня, 00:50
Товарищи, покритикуйте, пожалста GIT Есть ощущение какой-то топорности и незавершённости. Или я накручиваю? (валидатор принял)
Necris17428 уровень
24 мая, 05:35
Использовал 1 обычный массив строк [ ]. Брал слово из массива, если палиндром, искал пару, пара нашлась, добавляем в result и выпиливаем оба из массива. если не палиндром, сравниваем с последующими словами, предварительно реверсируя, если нашлось такое же, опять выпиливаем оба слова, предварительно добавив в result. Так и не понял, как использовать переопределенные методы equals и hashCode в классе Pair. Может кто-нибудь намек даст. Спасибо.
Дмитрий Ушаков23 уровень, Красноярск
воскресенье, 12:35
подскажи как ты их выпиливал из массива ? я имею ввиду проблему удаления элемента массива во время итерирования по нему. если использовать коллекцию и итератор то итератор удаляет только текущий элемент, а второй, который идет гдето в массиве не дает.
wvfenix8727 уровень, Москва
22 мая, 17:37
Вопрос появился, есть у нас некоторая строка s, содержащая символы переноса строки мы используем следующий код: String s1 = s.replaceAll("\n",""); System.out.println(s1.length()); System.out.println(s1); В результате замены при выводе в консоль выводится только последняя строчка, а длинна строки осталась полной. Кто-нибудь может пояснить почему? (Да я помню что string нельзя изменить)
wvfenix8727 уровень, Москва
22 мая, 17:54
Разобрался сам. Оказывается символ переноса строки состоит по сути из двух, \n и \r. Если выпилить один, а не выпилить второй, возможна такая проблема с видимостью строки.
NewBuy25 уровень, Санкт-Петербург
13 июня, 17:51
\r\n - перенос строки в виндовсе, на линуксах и в маке вроде по другому.