Считать с консоли 2 имени файла - file1, file2.
Файлы содержат строки, file2 является обновленной версией file1, часть строк совпадают.
Нужно создать объединенную версию строк, записать их в список lines.
Операции ADDED и REMOVED не могут идти подряд, они всегда разделены SAME.
Пустые строки даны в примере для наглядности.
В оригинальном и редактируемом файлах пустых строк нет!
Пример 1:
оригинальный редактированный общий
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", "строка1" есть в обоих файлах. Но статус по "строка1" - SAME, по "строка4" - REMOVED и ADDED.
Сафронов Алексей
1 уровень
Объясните алгоритм
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #598481
3 марта 2020, 08:56решение
Сравнение файлов идет построчно.
Если строчка на своем месте, значит same.
Если перед ней добавилась другая строчка, то эта другая будет added, а та, что сдвинулась на следующее место - same.
Если этой строчки нет во втором файле, а сразу идет та, что в исходном была за ней, то первая removed.
Проведя перечисленные проверки, ты узнал ответ на вопрос, что стало с первой строчкой из исходного файла, осталась она в файле (same) или была удалена (removed), а также была ли перед ней добавлена новая строка (added) или нет.
После этого можно переходить к следующей строке исходного файла и отвечать на те же три вопроса. Те строки нового файла, которые уже обрели свой статус, в дальнейшей проверке, разумеется, не участвуют.
+3
Сафронов Алексей
3 марта 2020, 12:07
спасибо
0