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

  • 10
  • Недоступна
Считайте с консоли два имени файла — file1, file2. Эти файлы содержат строки, причём file2 является обновленной версией file1, часть строк совпадают. Создайте объединенную версию строк и запишите их в список lines.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (209)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
kipisov20 уровень
вчера, 09:54
Долго бился с валидатором который зависал, т.е выдавал time out. Оказалось принимает только через создание FileReader и передачу его объекта BufferedReader-у. Решил задачу создавая два массива с собственным типом классом (строка и boolean переменная - в которой отмечал отработанные строки). ,,,,,,,,,,,,,,,,,,,,,,, ArrayList<StringBool> arrayList1 = new ArrayList<>(); ....................... public static class StringBool{ public String string; public boolean bool; public StringBool(String string,boolean bool){ this.string=string; this.bool=bool; } } ........................ Так как не встречал в комментах такого решения решил выложить идею решения. Код громоздкий. Без чтения и инициализации массивов и переменных, только цикл с тремя блоками проверок условий - 15 строк и поиском строки в массиве в отдельном методе - 25 строк. Можно оптимизировать, но не стал, так как валидатор принял. Код разросся из за не внятных условий задачи, и соответственного большого количества костылей, связанных с реализацией перебора только для - 2 и +2 строк от индекса строки (что бы не перебирать весь 2-й массив в поиске строки).
Sergey22 уровень, Москва
позавчера, 19:24
3 часа мозгослома, кривой код на выходе, но, валидптор принял. В итоге решил с двумя ArrayList с добавлением пустых элементов в нужных местах.
Александр19 уровень
воскресенье, 12:04
Логика такая получается? Если первая строка оригинального файла не равна первой строке редактированного файла, НО равна второй строке редактированного файла, ТО первая строка редактированного файла является - ADDED. Иначе если первая строка оригинального файла не равна первой строке редактированного файла, и не равна второй строке редактированного файла, ТО строка оригинального файла REMOVED из отредактированного.
13Black20 уровень, Москва
14 февраля, 13:27
Решал решал, бросил, решил взяться второй раз, прочитал внимательно условие - "Файлы содержат строки, file2 является обновленной версией file1, часть строк совпадают." АААА видимо я не учел совпадающие строки видимо поэтому. Дальше пример: оригинальный редактированный общий file1: file2: результат:(lines) строка1 строка1 SAME строка1 строка2 REMOVED строка2 строка3 строка3 SAME строка3 строка4 REMOVED строка4 строка5 строка5 SAME строка5 строка0 ADDED строка0 строка1 строка1 SAME строка1 строка2 REMOVED строка2 строка3 строка3 SAME строка3 строка4 ADDED строка4 строка5 строка5 SAME строка5 строка0 REMOVED строка0 Несколько раз повторено что пустых строк нет. Значит я предствляю что их нет. И тут самый тупняк - строка 4 - с чего это она удалена, она же есть в втором файле? если пробел удален тогда с какой сторокой он сравниал? строка 0 - добавлена, опять же почему? она же есть в первом файле. строка 4 - теперь она добавлена, здесь начинает прослеживать логика что мы должны написать какую то историю изменений файла один, но все равно тупняк, как он понял что в первом случае она удалена, а во втором добавлена, опять же пробелов же нет. Почему тогда строка 3 оставлена, она же будет сравниваться со строкой 5, и т. д. Допустим надо добавить пробелов если строки не равны, а куда добавлять? Вот допустим строка2 != строка3 и откуда мне знать что нужно пробел добавить во второй файл а не в первый? Короче я не понимаю что в этой задаче от меня хотят ! Пойду спишу думаю не много потеряю я!
S3R3N1TY22 уровень, Санкт-Петербург
13 февраля, 20:20
Ребята, решил только с подсказками, но вопросы остались, прошу помочь. Проверьте пожалуйста следующий набор: Файл1: строка1 строка2 строка3 строка4 строка5 Файл2: строка1 строка3 строка2 строка0 Результаты работы кода(который прошел валидацию) таков: SAME строка1 ADDED строка3 SAME строка2 REMOVED строка3 REMOVED строка4 REMOVED строка5 ADDED строка0 Как я понял условие задачи: У нас есть эталлонный файл1 и есть Файл2, в котором были какие-то изменения по сравнению с первым файлом: 1) Строчка которая была в Файле1, но ее нету во всем Файле2 - значит она удалена. 2) Строка из Файла1 присутствует во всем Файле2 значит она есть - SAME. 3) Если в Файле1 не было строчки како-то, но она появилась во втором файле на любом месте не важно где- значит она ADDED Прошу пояснить, правильно я понял данные пункты и почему такой вывод? Спасибо
Радик20 уровень, Казань
12 февраля, 15:04
Кто-нибудь знает, по условию задачи (валидатора), строка в пределах одного файла может повторяться, или их можно считать уникальными? Подскажите плиз.
Nik22 уровень
13 февраля, 00:30
может. Смотри условие
Alexander19 уровень, Москва
10 февраля, 18:46
Очень просто.
Danila Bogdanov20 уровень, Уфа
10 февраля, 07:11
Куча if и сломанный мозг.
Alexander19 уровень, Москва
9 февраля, 15:58
>Программа работала слишком долго и была закрыта. Хм, первый раз такое. Хотя с примером из задания справляется на ура. Добавьте пожалуйста в условие тест, на котором все валяться, потому что это нереально. Непонятно, чего хочет валидатор.
Voffka20 уровень, Киев
4 февраля, 16:11
Если нет пустых строк - как тогда можно определить что строка с определенным номером REMOVED?