Für diese Herausforderung müssen Sie ein Diff komprimieren. Ein Diff sind einige Daten, die den Unterschied zwischen zwei Zeichenfolgen darstellen. Für diese Herausforderung müssen Sie ein oder mehrere Programme bereitstellen, die Folgendes können:
- Eingabe
A
undB
, und Ausgabe eines Diffs,C
- Eingabe
A
undC
, und AusgabeB
- Eingabe
B
undC
, und AusgabeA
Das Ziel ist es, den Unterschied C
so klein wie möglich zu machen. Der Unterschied kann alles sein: eine Zeichenfolge, eine Zahl, ein Datenblock. Wir kümmern uns nur um die Größe (Anzahl der Bytes).
Ich habe 50 Testfälle , die auf Github zu finden sind . Jeder Testfall besteht aus zwei durch Leerzeichen getrennten URLs, die auf die beiden Dateien verweisen, die Sie unterscheiden müssen. (Diese Testfälle stammen aus den Github-Profilen der PPCG-Mitglieder. Vielen Dank!)
Alle drei oben genannten Aufgaben sollten weniger als eine Minute dauern, um auf einem Computer mit angemessener Leistung (für jeden Testfall) ausgeführt zu werden.
Ihre Punktzahl entspricht der Gesamtgröße (in Bytes) aller 50 Unterschiede, niedriger ist besser. Das Hardcoding von Unterschieden in Ihrem Programm ist nicht erlaubt (ich behalte mir das Recht vor, die Testfälle zu ändern, um Hardcoding zu verhindern). Builtins, die ein diff (like diffutils
) erzeugen, sind nicht erlaubt.
A
und darstelltB