Pour les besoins de ce défi, nous allons définir les espaces blancs uniquement comme des sauts de ligne (0x0A) et des espaces (0x20). Notez que la plupart des langages et des variantes de regex considèrent de nombreux autres caractères comme des espaces aussi bien à l'intérieur qu'à l'extérieur de la plage ASCII, de sorte que vous ne pourrez peut-être pas utiliser les fonctions intégrées correspondantes.
Le défi des flics
Vous devez écrire un programme ou une fonction dans la langue de votre choix, qui prend en entrée une chaîne composée de caractères ASCII (à l'exception de NUL) et le renvoie en supprimant tous les espaces. Par exemple, si vous avez reçu les données suivantes:
H e l l o,
W o r l d!
Vous devriez sortir
Hello,World!
Votre soumission sera alors votre code source avec tous les espaces supprimés (le même processus consiste à transmettre votre solution en tant qu'entrée, bien que votre solution puisse également contenir des caractères en dehors de la plage ASCII). Votre objectif est de rendre aussi difficile que possible de déterminer où des espaces doivent être insérés pour retrouver une solution valide dans la langue de votre choix. Notez que les cambrioleurs peuvent insérer moins d’espaces que vous en avez supprimés, mais pas plus. Rappelez-vous également que les voleurs ne doivent pas correspondre exactement à votre code, ils doivent simplement trouver une solution valable.
Votre réponse devrait contenir les éléments suivants:
- La langue (et la version si nécessaire) dans laquelle vous avez écrit votre solution.
- Nombre d'octets de votre solution avant de supprimer les espaces.
- Votre solution avec les espaces blancs supprimés.
Votre solution peut être un programme ou une fonction, mais pas un extrait et vous ne devez pas assumer un environnement REPL. Vous pouvez effectuer une entrée via STDIN, un argument de ligne de commande ou une fonction, et une sortie via STDOUT, une valeur de retour de fonction ou un paramètre de fonction (out).
Dans un souci d'équité, il doit exister un interprète ou un compilateur librement disponible pour la langue de votre choix.
Vous ne devez pas utiliser les fonctions intégrées pour le hachage, le chiffrement ou la génération de nombres aléatoires (même si vous générez le générateur de nombres aléatoires à une valeur fixe). Votre solution doit pouvoir traiter toute chaîne de 100 caractères ou moins en moins de 10 secondes sur un ordinateur de bureau raisonnable.
Si votre réponse n'a pas été fissurée dans les 7 jours (168 heures), vous pouvez révéler votre propre solution, point auquel votre réponse est considérée comme sûre . Tant que vous ne révélez pas votre solution, les voleurs peuvent la craquer, même si les 7 jours sont déjà écoulés. La réponse sûre la plus courte l'emporte (mesurée avant la suppression des espaces).
Si votre réponse est déchirée, veuillez l'indiquer dans l'en-tête de votre réponse, avec un lien vers la réponse du voleur correspondant.
Allez ici pour la partie des voleurs.
Soumissions non fissurées
<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>