Pour ce défi, vous devez compresser un diff. Un diff est une donnée qui représente la différence entre deux chaînes. Pour ce défi, vous devez fournir un ou plusieurs programmes qui peuvent:
- Entrer
A
etB
, et sortir un diff,C
- Entrée
A
etC
, et la sortieB
- Entrée
B
etC
, et la sortieA
Le but est de rendre le diff C
, aussi petit que possible. La différence peut être n'importe quoi: une chaîne, un nombre, un blob de données. Nous nous soucions juste de la taille (nombre d'octets).
J'ai 50 cas de test qui peuvent être trouvés sur Github . Chaque scénario de test se compose de deux URL séparées par des espaces qui pointent vers les 2 fichiers que vous devez différencier. (Ces cas de test provenaient des profils Github des membres de PPCG. Merci à tous!)
Les trois tâches ci-dessus devraient prendre moins d'une minute pour s'exécuter sur un ordinateur raisonnablement alimenté (pour chaque cas de test).
Votre score est égal à la taille totale (en octets) des 50 différences, plus c'est bas, mieux c'est. Les différences de codage en dur dans votre programme ne sont pas autorisées (je me réserve le droit de modifier les cas de test pour empêcher le codage en dur). Les builtins qui produisent un diff (comme diffutils
) ne sont pas autorisés.
la source
A
etB
Réponses:
Ma réponse est-elle valable?
testable sur: http://www.tutorialspoint.com/execute_tcl_online.php?PID=0Bw_CjBb95KQMNmd4QkxvQUFsTnM
la source
diff
équivalent et unpatch
équivalent). Sistring compare
diffs chaînes, il viole la règle "pas de builtins". S'il compare uniquement des chaînes (comme son nom l'indique), il ne laisse pas suffisamment d'informations pour recréer un patch.string compare
cela ne génère pas d'informations pour créer une page, mais il n'y a pas de place dans la question pour le demander.