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
A
iB
wyjście diff,C
- Wejście
A
iC
, i wyjścieB
- Wejście
B
iC
, i wyjścieA
Celem jest uczynienie różnicy C
moż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.
źródło
A
iB
Odpowiedzi:
Czy moja odpowiedź jest ważna?
testowany na: http://www.tutorialspoint.com/execute_tcl_online.php?PID=0Bw_CjBb95KQMNmd4QkxvQUFsTnM
źródło
diff
równoważnych, jak ipatch
równoważnych). Jeślistring compare
diffs ciągi, narusza zasadę „brak wbudowanych”. Jeśli porównuje tylko ciągi znaków (jak sugeruje nazwa), nie pozostawia wystarczającej ilości informacji do odtworzenia łatki.string compare
nie generuje informacji do utworzenia strony, ale nie ma miejsca w pytaniu o to.