Einfache Herausforderung, inspiriert von der Popularität meines vorherigen Drucks von unsichtbarem Text und Drucke echte unsichtbare Textherausforderungen und die gleiche Länge unterschiedlicher Zeichenfolgenherausforderung .
Bei einer Zeichenfolge, die nur aus druckbaren Zeichen ( 0x20 to 0x7E
) besteht, wird jedes druckbare Zeichen gedruckt, das nicht in der Zeichenfolge enthalten ist.
Eingang
Eine Zeichenfolge oder ein Zeichenfeld, das nur aus druckbaren ASCII-Zeichen besteht
Ausgabe
Jedes druckbare ASCII-Zeichen, das nicht in der Eingabezeichenfolge enthalten ist, in beliebiger Reihenfolge.
Testfälle
Input: "Hello, World!"
Output: ""#$%&'()*+-./0123456789:;<=>?@ABCDEFGIJKLMNOPQRSTUVXYZ[\]^_`abcfghijkmnpqstuvwxyz{|}~"
========
Input: "Hi!"
Output: " "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjklmnopqrstuvwxyz{|}~"
========
Input: ""
Output: " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
========
Input: " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
Output: ""
Wertung
Dies ist Code-Golf, so dass die wenigsten Bytes in jeder Sprache gewinnen
set( 'a', 'b', 'c' )
Antworten:
GS2 , 2 Bytes
Probieren Sie es online!
Wie es funktioniert
quelle
Perl 6 , 29 Bytes
Beachten Sie, dass das Ergebnis zufällig ist, da Mengen ungeordnet sind.
Probier es aus
Erweitert:
Es gibt auch eine ASCII-Version von
∖
(-)
, die jedoch ein Leerzeichen benötigt, damit sie nicht als Unterprogrammaufruf analysiert wird.quelle
Python 3.5 , 39 Bytes
Probieren Sie es online!
Verwandelt die Eingabe in eine Menge und entfernt sie aus der Menge, die alle ASCII-Zeichen enthält
quelle
Japt , 14 Bytes
Probieren Sie es online!
4 Bytes dank Shaggy und Obarakon gespeichert
quelle
127
mit#
, um ein Byte zu speichern, und entfernen Sie dasU
, um ein anderes zu speichern.¦
Ihre Argumente verwenden und neu anordnen, um einige Bytes zu sparen. 127 kann auch gekürzt werden TIOHaskell, 32 Bytes
Probieren Sie es online!
Langweilige Bibliotheksfunktion für die eingestellte Differenz:
Haskell, 31 Bytes
quelle
MATL , 5 Bytes
Probieren Sie es online!
Danke an Luis Mendo für das Golfen mit 8 Bytes!
Erläuterung:
Die symmetrische Satzdifferenz gibt jedes Element an, das in genau einem der beiden Eingabesätze vorhanden ist. (aber nicht beides) Dies gibt immer die richtige Antwort, da die Eingabemenge immer eine Teilmenge der zweiten Menge ist (alles druckbare ASCII).
Originalfassung:
Erläuterung:
quelle
Brachylog , 5 Bytes
Probieren Sie es online!
Erläuterung
quelle
JavaScript (ES6), 74 Byte
Ich bin mir sicher, dass es dafür einen kürzeren Weg gibt!
Versuch es
quelle
Array(95)
die vermisste enthalten sein~
}
als ich das geschrieben habe. Jetzt behoben, danke.String.fromCharCode
ist ein Idiot, deshalb! : D~
sich nichts geändert hat, außer dass es in der Spezifikation enthalten war. Außerdem muss der Teil "Try It" aktualisiert werden.Bash ,
47 4340 BytesProbieren Sie es online!
Erzeugt einen Hexa-Bereich, invertiert das Hexa-Dump in ein Zeichen und entfernt Zeichen, die im ersten Parameter enthalten sind.
quelle
Oktave,
22 bis20 BytesDank @Luis hat Mendo 2 Bytes gespart.
Probieren Sie es online!
Andere Antwort:
Probieren Sie es online!
quelle
@(s)setxor(' ':'~',s)
speichert 1 Byte@(s)setxor(32:'~',s)
scheint auch zu funktionieren --- und der gleiche Kommentar dafür :-)PHP, 42 Bytes
Eingabe als Array
Ausgabe als String
Probieren Sie es online!
PHP, 53 Bytes
Eingabe als String
Ausgabe als String
Ersetzen Sie
<?=join
mitprint_r
für eine Ausgabe als ArrayProbieren Sie es online!
quelle
Step 1: automatic starting tag
naphp -r
ja ... aber zB in diesem Beispiel zahlt es sich nicht aus, weilecho
es länger ist als<?=
.CJam , 8 Bytes
Wo
␡
ist ein wörtliches Löschzeichen.Probieren Sie es online!
quelle
-
funktioniert statt^
.Perl, 39 Bytes
Laufen Sie mit
perl -pe
.quelle
echo 'Hello World!' | perl -pe 's!.*!"pack(c95,32..126)=~y/$_//dr"!ee'
. Dies funktioniert sowohl für Perl v5.14 als auch für Perl v5.24.Brainfuck , 120 Bytes
Probieren Sie es online!
Gewickelt:
Erklärt:
quelle
Ohm , 3 Bytes
Probieren Sie es online!
Hinweis: Sie können Ihre Eingabe auch als Zeichenfolge eingeben ( Beispiel ), dies schlägt jedoch für den leeren Eingabefall fehl.
quelle
Rubin,
231817 BytesVerwendet eine Lambda-Funktion gemäß @ sethrins Kommentaren.
Vorherige Versionen:
quelle
s
entweder aus STDIN gelesen oder als Funktionsargument angegeben werden? Die Abfrage gibt auch an, dass die Eingabe als Array von Zeichen angegeben werden kann. Das Umwandeln in ein Stabby-Lambda und das Fallenlassenchars
ergibt eine 16-Byte-Lösung.->(s){[*' '..?~]-s)}
stdin
an eine globale Variable gebunden. In Ruby$<
ist eine Abkürzung dafür,stdin
aber Lambdas neigen dazu, kürzer zu sein. Die Konventionen zur Ein- und Ausgabe finden Sie hier . Ich mache auch nicht so viel, also lass es mich wissen, wenn die Regeln nicht meinen Vorstellungen entsprechen.APL, 13 Bytes
Einfach:
quelle
R , 50 Bytes
Gibt eine anonyme Funktion zurück. Konvertiert die Eingabezeichenfolge in Ganzzahlen, berechnet die eingestellte Differenz zwischen dem druckbaren Bereich und den Eingabewerten und konvertiert sie dann zurück in eine Zeichenfolge und gibt sie zurück.
Probieren Sie es online!
quelle
PHP, 53 Bytes
Als Rohr mit laufen lassen
-r
.quelle
C #,
7471 BytesAlte Version mit einem Bereich für 74 Bytes:
quelle
05AB1E ,
54 Bytes-1 danke an Emigna
Probieren Sie es online!
quelle
V , 20 Bytes
Probieren Sie es online!
Hexdump:
quelle
C (GCC) ,
7572706850 BytesProbieren Sie es online!
quelle
||
, um diese Arbeit auf "Standard" C zu machen??:
ist eine GNU-Erweiterung. Es funktioniert aber auch in clang und tcc.Gelee , 8 Bytes
Wirklich 8 Bytes? Bitte sag mir, dass ich etwas verpasst habe!
Probieren Sie es online!
Wie?
Alternative
Seit dieser Herausforderung wurde ein neues Atom eingeführt, das alle druckbaren ASCII-Zeichen liefert.
ØṖ
Damit funktioniert Folgendes für 3 Bytes:quelle
Kohle ,
1815108 BytesProbieren Sie es online! Link ist eine ausführliche Version des Codes. Bearbeiten: Speichert 3 Bytes, indem Zeichen anstelle von ganzen Zahlen überstrichen werden. Weitere 5 Bytes wurden gespeichert, als ich die undokumentierte
γ
Variable entdeckte, die die druckbaren ASCII-Zeichen enthält. Weitere 2 Bytes wurden gespeichert, wenn @ ASCII-only vordefinierte Eingaben im ausführlichen Modus festlegte.quelle
Mathematica, 35 Bytes
Anonyme Funktion. Nimmt eine Liste von Zeichen als Eingabe und gibt eine Liste von Zeichen als Ausgabe zurück.
quelle
Lua, 78 Bytes
quelle
shortC , 33 bytes
In diesem Programm vorgenommene Konvertierungen:
A
->int main(int argc, char **argv) {
O
->for(
@
->argv
P
->putchar
));}
Das resultierende Programm sieht folgendermaßen aus:
Probieren Sie es online!
quelle
Pyth , 17 Bytes
Der naive Ansatz.
Erläuterung:
Online testen!
quelle
Clojure, 60 oder 49 Bytes
Diese "Apply" s bringen mich um: / Oh, wenn es in Ordnung ist, eine Liste zurückzugeben, ist dies etwas kürzer.
quelle