Na potrzeby tego wyzwania zdefiniujemy białe znaki jako tylko linie (0x0A) i spacje (0x20). Zauważ, że większość języków i smaków wyrażeń regularnych uważa również wiele innych znaków za spacje, zarówno wewnątrz, jak i poza zakresem ASCII, więc możesz nie być w stanie skorzystać z odpowiednich wbudowanych funkcji.
Wyzwanie gliniarzy
Powinieneś napisać program lub funkcję w wybranym przez siebie języku, który pobiera ciąg znaków składający się ze znaków ASCII (oprócz NUL) jako dane wejściowe i wyjściowe, po usunięciu wszystkich białych znaków. Na przykład, jeśli otrzymałeś następujące dane wejściowe:
H e l l o,
W o r l d!
Powinieneś wyjść
Hello,World!
Twoje zgłoszenie będzie wtedy kodem źródłowym z usuniętymi białymi spacjami (ten sam proces, jak przekazanie rozwiązania jako danych wejściowych do siebie, chociaż twoje rozwiązanie może również zawierać znaki spoza zakresu ASCII). Twoim celem jest jak najtrudniejsze ustalenie, gdzie należy wstawić białe znaki, aby odzyskać prawidłowe rozwiązanie w wybranym języku. Pamiętaj, że złodzieje mogą wstawić mniej białych znaków niż usunięto, ale nie więcej. Pamiętaj też, że złodzieje nie muszą dokładnie pasować do twojego kodu, muszą tylko znaleźć prawidłowe rozwiązanie.
Twoja odpowiedź powinna zawierać następujące informacje:
- Język (i wersja, jeśli to konieczne), w którym napisałeś swoje rozwiązanie.
- Liczba bajtów Twojego rozwiązania przed usunięciem białych znaków.
- Twoje rozwiązanie z białymi spacjami zostało usunięte.
Rozwiązaniem może być program lub funkcja, ale nie fragment kodu i nie można zakładać środowiska REPL. Można przyjmować dane wejściowe za pośrednictwem STDIN, argument wiersza polecenia lub argument funkcji i dane wyjściowe za pośrednictwem STDOUT, wartości zwracanej funkcji lub parametru funkcji (wyjściowej).
W trosce o sprawiedliwość musi istnieć darmowy tłumacz lub kompilator dla wybranego przez ciebie języka.
Nie wolno używać wbudowanych funkcji do mieszania, szyfrowania lub generowania liczb losowych (nawet jeśli generator liczb losowych zostanie ustawiony na stałą wartość). Twoje rozwiązanie musi być w stanie przetworzyć dowolny ciąg 100 znaków lub mniej w ciągu 10 sekund na rozsądnej maszynie stacjonarnej.
Jeśli twoja odpowiedź nie zostanie złamana w ciągu 7 dni (168 godzin), możesz ujawnić własne rozwiązanie, w którym to momencie odpowiedź zostanie uznana za bezpieczną . Dopóki nie ujawnisz swojego rozwiązania, może ono zostać złamane przez rabusiów, nawet jeśli minęło już 7 dni. Wygrywa najkrótsza bezpieczna odpowiedź (mierzona przed usunięciem białych znaków).
Jeśli twoja odpowiedź się popsuła, zaznacz to w nagłówku odpowiedzi wraz z linkiem do odpowiedzi odpowiedniego rabusia.
Idź tutaj po część rabusiów.
Nieprzetworzone zgłoszenia
<script>site = 'meta.codegolf'; postID = 5686; isAnswer = false; QUESTION_ID = 103182;</script><script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)</code></pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script>