Für diese Herausforderung definieren wir Leerzeichen als nur Zeilenvorschübe (0x0A) und Leerzeichen (0x20). Beachten Sie, dass die meisten Sprachen und Regex-Varianten auch viele andere Zeichen als Leerzeichen betrachten, sowohl innerhalb als auch außerhalb des ASCII-Bereichs, sodass Sie möglicherweise nicht in der Lage sind, die entsprechenden integrierten Funktionen zu verwenden.
Die Herausforderung der Polizei
Sie sollten ein Programm oder eine Funktion in einer Sprache Ihrer Wahl schreiben, die eine Zeichenfolge aus ASCII-Zeichen (außer NUL-Zeichen) als Eingabe und Ausgabe verwendet, wobei alle Leerzeichen entfernt werden. Zum Beispiel, wenn Sie die folgende Eingabe erhalten haben:
H e l l o,
W o r l d!
Sie sollten ausgeben
Hello,World!
Ihre Übermittlung ist dann Ihr Quellcode, wobei alle Leerzeichen entfernt werden (der gleiche Vorgang wie das Übergeben Ihrer Lösung als Eingabe an sich selbst, obwohl Ihre Lösung auch Zeichen außerhalb des ASCII-Bereichs enthalten kann). Ihr Ziel ist es, es so schwierig wie möglich zu machen, herauszufinden, wo Leerzeichen eingefügt werden müssen, um eine gültige Lösung in der Sprache Ihrer Wahl zu finden. Beachten Sie, dass Räuber möglicherweise weniger Leerzeichen einfügen, als Sie entfernt haben, jedoch nicht mehr. Denken Sie auch daran, dass Räuber nicht unbedingt Ihren genauen Code angeben müssen, sondern lediglich eine gültige Lösung finden müssen.
Ihre Antwort sollte Folgendes enthalten:
- Die Sprache (und ggf. die Version), in der Sie Ihre Lösung geschrieben haben.
- Die Byteanzahl Ihrer Lösung, bevor Leerzeichen entfernt werden.
- Ihre Lösung mit Leerzeichen entfernt.
Ihre Lösung kann entweder ein Programm oder eine Funktion sein, aber kein Snippet, und Sie dürfen keine REPL-Umgebung annehmen. Sie können Eingaben über STDIN, Befehlszeilenargument oder Funktionsargument und Ausgaben über STDOUT, Funktionsrückgabewert oder Funktionsparameter (out) vornehmen.
Im Interesse der Fairness muss es einen frei verfügbaren Dolmetscher oder Compiler für die von Ihnen gewählte Sprache geben.
Sie dürfen keine integrierten Funktionen zum Hashing, zur Verschlüsselung oder zur Generierung von Zufallszahlen verwenden (auch wenn Sie den Zufallszahlengenerator auf einen festen Wert setzen). Ihre Lösung muss in der Lage sein, Zeichenfolgen mit maximal 100 Zeichen in weniger als 10 Sekunden auf einem vernünftigen Desktop-Computer zu verarbeiten.
Wenn Ihre Antwort nicht innerhalb von 7 Tagen (168 Stunden) geknackt wurde, können Sie Ihre eigene Lösung aufzeigen, zu welchem Zeitpunkt Ihre Antwort als sicher eingestuft wird . Solange Sie Ihre Lösung nicht preisgeben, kann sie auch dann von Räubern geknackt werden, wenn die sieben Tage bereits verstrichen sind. Die kürzeste sichere Antwort gewinnt (gemessen vor dem Entfernen von Leerzeichen).
Wenn Ihre Antwort geknackt wird, geben Sie dies bitte in der Kopfzeile Ihrer Antwort zusammen mit einem Link zur Antwort des entsprechenden Räubers an.
Gehen Sie hier für die Räuber.
Uncracked Submissions
<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>