Для этого вам нужно сжать разность. Разница - это некоторые данные, которые представляют разницу между двумя строками. Для этой задачи вам необходимо предоставить одну или несколько программ, которые могут:
- Введите
A
иB
, и выведите diff,C
- Входной
A
иC
, и выходB
- Входной
B
иC
, и выходA
Цель состоит в том, чтобы сделать diff C
как можно меньше. Разница может быть чем угодно: строка, число, блок данных. Мы просто заботимся о размере (количестве байтов).
У меня есть 50 тестовых случаев, которые можно найти на Github . Каждый тестовый пример состоит из двух разделенных пробелами URL-адресов, которые указывают на 2 файла, которые необходимо проверить. (Эти тестовые примеры взяты из профилей Github членов PPCG. Спасибо всем!)
Все три задачи, описанные выше, должны выполняться менее чем за минуту на компьютере с разумной нагрузкой (для каждого тестового случая).
Ваша оценка равна общему размеру (в байтах) всех 50 различий, чем ниже, тем лучше. Жесткое кодирование различий в вашей программе не разрешено (я оставляю за собой право изменять контрольные примеры для предотвращения жесткого кодирования). Встроенные функции, которые производят diff (как diffutils
), не допускаются.
источник
A
иB
Ответы:
Мой ответ действителен?
тестируется на: http://www.tutorialspoint.com/execute_tcl_online.php?PID=0Bw_CjBb95KQMNmd4QkxvQUFsTnM
источник
diff
эквивалентных, так иpatch
эквивалентных). Еслиstring compare
diffs строки, это нарушает правило "без встроенных". Если он сравнивает только строки (как следует из названия), он не оставляет достаточно информации для воссоздания патча.string compare
это не генерирует информацию для создания страницы, но нет места в вопросе об этом.