Отслеживаем изменения

  • 20
  • Недоступна
Считать с консоли 2 пути к файлам - file1, file2. Файлы содержат строки. Так как file2 является обновленной версией file1, то часть строк совпадает. Нужно создать объединенную версию строк из обоих файлов и записать эти строки в список lines.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (671)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Noulayfer
Уровень 29
24 сентября, 15:23
А зааа чтооооо кто пишет условияяяя, ну это край как бы. Написано использовать FileReader, я сижу думаю как прочитать с ФайлРидера и разбить на строки. Думаю блин почему нельзя использовать просто БуферРидер, захожу в правильный ответ, смотрю - БуферРидер. Можно сказать конечно мол ну мы же все равно используем ФайлРидер просто оборачиваем в Буфер - ноооо это жее запутывает вообще, лучше уже ничего не писать.
TemaCode
Уровень 32
19 сентября, 13:45
Плохо поставленные условия, думаешь что хотят на выходе получить все уникальные строчки в List<LineItem> lines, но нет, дубли там тоже почему то хотят видеть -))
hint1k
Уровень 32
11 сентября, 14:42
Условия сформулированы ужасно. Вся эта писанина заменяется 5 строчками: 1) если a [ i ] == b [ j ] тогда Same 2) если a [ i ] != b [ j ] && a [ i+1 ] == b [ j ] тогда Removed 3) если a [ i ] != b [ j ] && a [ i+1 ] != b [ j ] тогда Added 4) если a [ i < x ] && b [ j == y ] тогда Removed 5) если a [ i == x ] && b [ j < y ] тогда Added где "x" и "y" = кол-во строк в файлах
51_Drummer инженер в Фармэк
30 августа, 15:53
Операции ADDED и REMOVED не могут идти подряд, они всегда разделены SAME. Я, конечно, понимаю, что меня мягко толкают к потокам, но ЧТО делать с когнитивным диссонансом, если SAME строк тупо меньше 1\3?!!!
51_Drummer инженер в Фармэк
31 августа, 17:59
Оу, оказалось тут построчное сравнение, прикольная штука
Anonymous #3022337
Уровень 30, Russian Federation
30 августа, 07:31
Для меня эта задача оказалась самой сложной из всех решенных мною здесь. Почувствовал себя умственно отсталым, пока пытался понять требования
LizaTester QA Automation Engineer в IBS
29 августа, 00:06
Думала, мое решение костыльное, но в итоге очень похоже на эталон=) Заполнила 2 ArrayList, затем в цикле рассмотрела 3 возможных случая и накинула счетчик.
while (i < list1.size() && j < list2.size()) {
if (list1.get(i).equals(list2.get(j))) {
                i++;
                j++;
            } else if (list1.get(i).equals(list2.get(j + 1))) {
                j++;
            } else {
                i++;
            }}
Оказалось, что в случае несовпадения последних строк листов одна строчка потеряется. Вылечилось простым if-else после цикла.
Игорь Чайка
Уровень 32, Вінниця, Ukraine
25 августа, 10:58
На самом деле задача не очень сложная, просто нужно сесть и подумать, нарисовать на листочке что должно происходить. Я сделал через два ArrayList. Дельный совет: не копировать с условия примеры в поверочные файлы, так как там есть скрытые символы и программа не сработает. Лучше самому напечатать.
papsnaz
Уровень 32, Самара, Russian Federation
23 августа, 15:02
Условия понял быстро, но решил парсить последние цифры в строках и выстраивать из этого логику, пришлось переделывать. Написал в итоге 3 разных варианта, валик принял только один через очистку списков, хотя до этого делал логику через инкремент/декремент (все тоже самое). Ушло часа 4-5. Эта задача пока больше всех тянет на эпик. 👺
An N
Уровень 29, Cheboksary, Russian Federation
12 августа, 18:13
Мой совет - как понимать условие задачи Условие задачи содержит три пункта начинающихся "Если ...", которые не охватывают все возможные ситуации, встречающиеся в примере. Этот как оператор switch содержащий три case, но нету default. Я для себя убрал из третьего пункта фразу "Если ..." и сделал этот пункт дефолтным. Теперь условие задачи стало понятным и однозначным. Но Пример 1 все еще не соответствует пункту 2. Смотрим: В первом файле 4-я строчка "строка4" имеется также во втором файле в предпоследней строчке. Значит эта пара строчек не подходит под пункт 2, но в примере видим REMOVED в 4-й строчке. Во втором пункте я для себя изменил условие. Вместо "но ее нет в file2" написал "но ее нет в file2 в текущей либо следующей строчке". Валидатор принял мое решение с первой попытки. Конечно, это неправильно, когда заказчик назвал одни условия, а ты выполняешь заказ по другим условиям без согласования. Но что делать, если условия неполные, некорректные, противоречивые?
An N
Уровень 29, Cheboksary, Russian Federation
13 августа, 05:00
Задача готовит к работе с клиентом, который не может объяснить, чего он хочет.
Yoty
Уровень 33, Москва
5 августа, 12:05
Самое сложное в задаче - правильно понять условия 😄
An N
Уровень 29, Cheboksary, Russian Federation
13 августа, 05:01
Задача готовит к работе с клиентом, который не может объяснить, чего он хочет.