Para esse desafio, você precisa compactar um diff. Um diff é alguns dados que representam a diferença entre duas strings. Para esse desafio, você precisa fornecer um ou mais programas que possam:
- Input
A
eB
, e output a diff,C
- Input
A
eC
e saídaB
- Input
B
eC
e saídaA
O objetivo é tornar o diff o C
menor possível. O diff pode ser qualquer coisa: uma string, um número, um blob de dados. Nós apenas nos preocupamos com o tamanho (número de bytes).
Eu tenho 50 casos de teste que podem ser encontrados no Github . Cada caso de teste consiste em dois URLs separados por espaço que apontam para os 2 arquivos que você precisa diferenciar. (Esses casos de teste tiveram origem nos perfis do Github dos membros do PPCG. Obrigado a todos!)
Todas as três tarefas acima devem levar menos de um minuto para serem executadas em um computador com alimentação razoável (para cada caso de teste).
Sua pontuação é igual ao tamanho total (em bytes) de todas as 50 diferenças, menor é melhor. Diferenças de codificação física no seu programa não são permitidas (reservo-me o direito de alterar os casos de teste para evitar a codificação). Builtins que produzem um diff (como diffutils
) não são permitidos.
A
eB