Aby sprostać temu wyzwaniu, musisz skompresować różnicę. Różnica to niektóre dane reprezentujące różnicę między dwoma łańcuchami. Aby sprostać temu wyzwaniu, musisz zapewnić jeden lub więcej programów, które mogą:
- Wejście
AiBwyjście diff,C - Wejście
AiC, i wyjścieB - Wejście
BiC, i wyjścieA
Celem jest uczynienie różnicy Cmożliwie najmniejszą. Różnica może być dowolna: ciąg, liczba, kropla danych. Dbamy tylko o rozmiar (liczbę bajtów).
Mam 50 przypadków testowych, które można znaleźć na Github . Każdy przypadek testowy składa się z dwóch oddzielonych spacjami adresów URL, które wskazują na 2 pliki, które należy różnicować. (Te przypadki testowe pochodzą z profili Github członków PPCG. Dziękujemy wszystkim!)
Wszystkie trzy powyższe zadania powinny zająć mniej niż minutę, aby uruchomić się na komputerze o rozsądnej mocy (dla każdego przypadku testowego).
Twój wynik jest równy całkowitemu rozmiarowi (w bajtach) wszystkich 50 różnic, im niższy, tym lepszy. Twarde kodowanie różnic w twoim programie jest niedozwolone (zastrzegam sobie prawo do zmiany przypadków testowych, aby zapobiec twardemu kodowaniu). Wbudowane, które wytwarzają różnice (podobne diffutils) są niedozwolone.
AiB