Défi simple inspiré par la popularité de mes précédents textes invisibles imprimés et imprimés de vrais textes invisibles , et le même défi de chaîne de longueur différente .
Étant donné une chaîne composée uniquement de caractères imprimables ( 0x20 to 0x7E
), imprimez chaque caractère imprimable non présent dans la chaîne.
Contribution
Une chaîne ou un tableau de caractères, composé uniquement de caractères ASCII imprimables
Production
Chaque caractère ASCII imprimable n'est pas présent dans la chaîne d'entrée, dans n'importe quel ordre.
Cas de test
Input: "Hello, World!"
Output: ""#$%&'()*+-./0123456789:;<=>?@ABCDEFGIJKLMNOPQRSTUVXYZ[\]^_`abcfghijkmnpqstuvwxyz{|}~"
========
Input: "Hi!"
Output: " "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjklmnopqrstuvwxyz{|}~"
========
Input: ""
Output: " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
========
Input: " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
Output: ""
Notation
C'est du golf de code donc le moins d'octets dans chaque langue gagne
set( 'a', 'b', 'c' )
Réponses:
GS2 , 2 octets
Essayez-le en ligne!
Comment ça fonctionne
la source
Perl 6 , 29 octets
Notez que le résultat est aléatoire car les ensembles ne sont pas ordonnés.
Essaye-le
Étendu:
Il existe également une version ASCII de
∖
(-)
, mais elle nécessiterait un espace avant pour ne pas être analysée comme un appel de sous-routine.la source
Python 3.5 , 39 octets
Essayez-le en ligne!
Transforme l'entrée en un ensemble et le supprime de l'ensemble contenant tous les caractères ascii
la source
Japt , 14 octets
Essayez-le en ligne!
4 octets enregistrés grâce à Shaggy et obarakon
la source
127
par#
pour enregistrer un octet et supprimez leU
pour en enregistrer un autre.¦
et réorganiser vos arguments pour économiser quelques octets. Aussi, 127 peut être raccourci TIOHaskell, 32 octets
Essayez-le en ligne!
Fonction de bibliothèque ennuyeuse pour la différence définie:
Haskell, 31 octets
la source
MATL , 5 octets
Essayez-le en ligne!
Merci à Luis Mendo d'avoir joué au golf à 8 octets!
Explication:
La différence d'ensemble symétrique donnera chaque élément présent dans exactement l'un des deux ensembles d'entrée. (mais pas les deux) Cela donnera toujours la bonne réponse, car l'ensemble d'entrée sera toujours un sous-ensemble du deuxième ensemble (tous ASCII imprimables).
Version originale:
Explication:
la source
Brachylog , 5 octets
Essayez-le en ligne!
Explication
la source
JavaScript (ES6), 74 octets
Je suis sûr qu'il existe un moyen plus court de le faire!
Essayez-le
la source
Array(95)
d'inclure les disparus~
}
J'aurais juré que le dernier personnage était quand j'ai écrit ça. Fixé maintenant, merci.String.fromCharCode
est un git, c'est pourquoi! : D~
que rien ne changeait, sauf qu'il était dans la spécification. De plus, la partie "Try It" doit être mise à jour.Bash ,
47 4340 octetsEssayez-le en ligne!
Génère une plage hexa, inverse le vidage hexadécimal pour char et supprime les caractères présents dans le premier paramètre.
la source
Octave,
2220 octetsMerci à @Luis Mendo a sauvé 2 octets.
Essayez-le en ligne!
Autre réponse:
Essayez-le en ligne!
la source
@(s)setxor(' ':'~',s)
enregistre 1 octet@(s)setxor(32:'~',s)
semble aussi fonctionner --- et même commentaire pour cela :-)PHP, 42 octets
Entrée sous forme de tableau
Sortie sous forme de chaîne
Essayez-le en ligne!
PHP, 53 octets
Entrée sous forme de chaîne
Sortie sous forme de chaîne
remplacer
<?=join
parprint_r
pour une sortie en tant que tableauEssayez-le en ligne!
la source
Step 1: automatic starting tag
bienphp -r
... mais par exemple dans cet exemple, il ne paie pas parce queecho
c'est plus long que<?=
.CJam , 8 octets
Où
␡
est un caractère de suppression littéral.Essayez-le en ligne!
la source
-
fonctionne à la place de^
.Perl, 39 octets
Courez avec
perl -pe
.la source
echo 'Hello World!' | perl -pe 's!.*!"pack(c95,32..126)=~y/$_//dr"!ee'
. Cela fonctionne pour moi sur Perl v5.14 et v5.24.brainfuck , 120 octets
Essayez-le en ligne!
Enveloppé:
Expliqué:
la source
Ohm , 3 octets
Essayez-le en ligne!
Remarque: vous pouvez également saisir votre entrée sous forme de chaîne ( exemple ), mais elle échoue pour le cas d'entrée vide.
la source
Rubis,
231817 octetsUtilise une fonction lambda selon les commentaires de @ sethrin.
Versions précédentes:
la source
s
être lu à partir de STDIN ou fourni comme argument de fonction? Le défi spécifie également que l'entrée peut être donnée sous forme de tableau de caractères. La conversion en lambda stabby et la suppressionchars
donne une solution à 16 octets.->(s){[*' '..?~]-s)}
stdin
liées à une variable globale. En Ruby$<
est un raccourci pourstdin
mais les lambdas ont tendance à être plus courts. Les conventions d'entrée et de sortie sont ici . Je ne fais pas non plus beaucoup de choses, donc si les règles ne sont pas ce que je pense, faites le moi savoir.APL, 13 octets
Simple:
la source
R , 50 octets
renvoie une fonction anonyme. Convertit la chaîne d'entrée en nombres entiers, calcule la différence définie entre la plage imprimable et les valeurs d'entrée, puis les reconvertit en chaîne et la renvoie.
Essayez-le en ligne!
la source
PHP, 53 octets
Exécuter en tant que tuyau avec
-r
.la source
C #,
7471 octetsAncienne version avec création d'une plage de 74 octets:
la source
05AB1E ,
54 octets-1 grâce à Emigna
Essayez-le en ligne!
la source
V , 20 octets
Essayez-le en ligne!
Hexdump:
la source
C (gcc) ,
7572706850 octetsEssayez-le en ligne!
la source
||
pour faire ce travail sur C "standard"??:
est une extension GNU. Cela fonctionne aussi bien en clang qu'en tcc.Gelée , 8 octets
Vraiment, 8 octets? S'il vous plaît, dites-moi que j'ai raté quelque chose!
Essayez-le en ligne!
Comment?
Alternativement
Depuis ce défi, un nouvel atome qui produit tous les caractères ASCII imprimables
ØṖ
, a été introduit, ce qui rend le travail suivant sur 3 octets:la source
Fusain ,
1815108 octetsEssayez-le en ligne! Le lien est vers la version détaillée du code. Modifier: enregistré 3 octets en s'étendant sur des caractères au lieu d'entiers. J'ai enregistré 5 octets supplémentaires lorsque j'ai découvert la
γ
variable non documentée qui contient les caractères ASCII imprimables. Enregistré 2 octets supplémentaires lorsque @ ASCII uniquement des entrées prédéfinies fixes en mode prolixe (la réponse est toujours valable en l'état, ce n'est que le lien d'essayer en ligne qui n'aurait pas fonctionné à l'époque).la source
Mathematica, 35 bytes
Anonymous function. Takes a list of characters as input and returns a list of characters as output.
la source
Lua, 78 bytes
la source
shortC, 33 bytes
Conversions made in this program:
A
->int main(int argc, char **argv) {
O
->for(
@
->argv
P
->putchar
));}
The resulting program looks like:
Try it online!
la source
Pyth, 17 bytes
The naive approach.
Explanation:
Test it online!
la source
Clojure, 60 or 49 bytes
These "apply"s are killing me :/ Oh, if returning a list is fine then this is a bit shorter.
la source