рекомендация: Убедись, что список lines в нужных местах содержит операции REMOVED c нужными строками.
XVVZ
20 уровень
Помогите! Что хочет ВАЛИдатор?
Решен
Комментарии (21)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Pavlo PlynkoJava-разработчик в CodeGymExpert
18 декабря 2017, 11:41полезный
IndexOutOfBoundsException в 36 строке, с такими файлами:
+1
XVVZ
18 декабря 2017, 12:26
Ваша последовательность противоречит условию задачи.
Операции ADDED и REMOVED не могут идти подряд, они всегда разделены SAME.
file1: 1 1 2 3 4 5 6 7
file2: 1 8 1 4 9 5 7
output: S1 A8 S1 R2 R3 S4 A9 S5 R6 S7
Мною видится проблема с R2 R3
0
Pavlo PlynkoJava-разработчик в CodeGymExpert
18 декабря 2017, 12:51
Действительно... Отредактировал комментарий, исправил последовательность, ошибка та же.
0
XVVZ
18 декабря 2017, 12:57
Спасибо за посказку. Все получилось. :)
0
Михаил
16 декабря 2017, 14:34
Я когда решал задачу. Создал два файла со строками
Файл первый:
1
2
3
4
5
1
2
3
4
5
Файл второй:
1
3
5
0
1
3
5
4
Считывал эти файлы и смотрел какой результат получаю. И только тогда понял как должна работать программа. Добился результата, какой в статье
0
XVVZ
16 декабря 2017, 14:41
Я даже пошел дальше и вариантов у меня файлов уже
file1: 1 4 5
file2: 2 1 3 4 5 6
output: А2 S1 A3 S4 S5 A6
file1: 1 2 3
file2: 1 3 4
ouput: S1 R2 S3 A4
file1: 1 1
file2: 1 2 1
ouput: S1 A2 S1
file1: 1 2 1
file2: 2 3 1 4
ouput: R1 S2 A3 S1 A4
file1: 1 2 3 4
file2: 1 3
ouput: S1 R2 S3 R4
file1: 1 2 3 5
file2: 0 1 3 4 5 6
ouput: A0 S1 R2 S3 A4 S5 A6
0
Михаил
16 декабря 2017, 14:44
А при таких файлах какой вывод?
file1: 1 2 3 4 5 1 2 3 4 5
file2: 1 3 5 0 1 3 5 4
0
XVVZ
16 декабря 2017, 14:58
SAME 1'
REMOVED 2'
SAME 3'
REMOVED 4'
SAME 5'
ADDED 0'
SAME 1'
REMOVED 2'
SAME 3'
ADDED 5'
SAME 4'
REMOVED 5'
по последним 3–ом строчкам было обсуждение тыц
я надеюсь данная неоднозначная сортировка Вами добавлена случайно :)
0
Михаил
16 декабря 2017, 15:16
Странно. Скопировал вашу программу. Отдал ей два файла на съедение, что описаны выше. И вот результат:
[REMOVED1, REMOVED2, ADDED1, SAME3, REMOVED4, SAME5, ADDED0, SAME1, REMOVED2, SAME3, ADDED5, SAME4, REMOVED5]
0
Михаил
16 декабря 2017, 15:52
Свою ошибку здесь нашел. У меня два файла были в разных кодировках. Ваше решение верное. Что-то здесь валидатор тупит.
0
Михаил
16 декабря 2017, 12:42
Обрати внимание (с помощью статьи), что ты не всегда должен из своего lineFile2 удалять lf1
Так при работе с Type.ADDED программа немного по другому себя должна вести
0
XVVZ
16 декабря 2017, 13:57
Всегда. Т.К., будет ситуация при которой второй массив окажется длиннее первого
0
Михаил
16 декабря 2017, 14:09
Вы меня недопоняли. Мы удаляем всегда из lineFile2. Не поленитесь и пройдите по ссылке, что скидывал. Там более наглядно нарисовано, что от вас требуется
0
XVVZ
16 декабря 2017, 14:16
Тестировал пример приведений в статье и у меня. Результаты полностью идентичны.
0
Михаил
16 декабря 2017, 12:40
Вот статейка где графически хорошо показано, как должны вести себя списки по задаче
http://info.javarush.ru/JavaRush_tasks_discussion/2016/02/14/level19-lesson10-bonus01-%D0%93%D1%80%D0%B0%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5-%D0%BF%D0%BE%D1%8F%D1%81%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8F-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8-.html
0
XVVZ
16 декабря 2017, 14:05
добавил строку
что бы соответствовать инфе из ссылки
0
Михаил
16 декабря 2017, 14:30
Хоршо, давайте зайду с другой стороны.
Смотрите. Ты ходишь по списку первого файла через цикл. Каждую его строчку сравниваешь со строчкой списка второго файла. Вычисляешь являются ли они равными, и в зависимости от результата добавляешь инфу в список lines. Но добавляешь всегда текущую строку из списка файла2
Теперь по той инфе при возникновении условия для "Type.ADDED" нужно добавлять в список lines сроку из списка файла 2(Added 0)
0
XVVZ
16 декабря 2017, 14:36
Да все верно.
и вот в этой строке
это и происходит.
0
Михаил
16 декабря 2017, 14:41
Кстати, когда я решал, то список первого файла не трогал (в смысле его не изменял, не удалял из него) Так как где-то читал, что возникают проблемы когда ты ходишь по коллекции итератором или через цикл foreach и изменяешь ее. Попробуй переписать программу другим путем. Удаляй строки только из второго списка и добавляй нужные строки в список lines
0
XVVZ
16 декабря 2017, 15:00
У меня в коде нет удалений с первого списка.
0
Михаил
16 декабря 2017, 15:06
Ссори, верно. Чужой код мне еще трудно понимать.
0