Schreiben Sie bei einer Eingabezeichenfolge, die nur Buchstaben und Zahlen enthält, ein Programm oder eine Funktion, die die möglichen druckbaren ASCII-Zeichen (Hex 20-7E) druckt, die dem Wert der Zeichenfolge in den Basen 8, 10 und 16 entsprechen (sofern möglich). Die Zeichen müssen in aufsteigender Reihenfolge in Bezug auf die Basen geschrieben werden, mit denen sie korrespondieren (Basis 8 zuerst usw.). Die Ausgabe kann im Array-Format (wie [& . F]
) oder durch Leerzeichen oder Zeilenumbrüche (eine nachfolgende Zeilenumbruch ist optional) wie die Beispiele getrennt sein.
Wenn es kein mögliches druckbares ASCII-Zeichen gibt, das gebildet werden kann, darf das Programm keine Ausgabe haben.
Proben
31
==> 1
47
==> ' / G
69
==> E i
7A
==> z
100
==> @ d
156
==> n
189
==> <empty>
potaTO
==> <empty>
5G
==> <empty>
19
==> <empty>
Dies ist Code-Golf , also gewinnt die Antwort mit den wenigsten Bytes. Es gelten Standardregeln.
quelle
map
und verwendenfilter
, ist das Array-Verständnis wirklich nützlich.'0'+b+...
wannb
immer eine Zeichenfolge sein wird?0+b+...
MATL , 23
2428Bytes1 Byte weniger dank @David
Probieren Sie es online aus!
quelle
D
notwendig ist, oder? Gute Arbeit beim Erstellen des Vektors. Ich habe fast das Gleiche getan wie Sie, konnte den Vektor jedoch nicht verkürzen[8,10,16]
.D
es in diesem Fall für notwendig, den Stapel zu leeren. Aber du hast recht, ist es nicht! Vielen Dank!' ':'~'
als vordefiniertes Literal für die nächste Version hinzufügen !32:126m
ist eine gute Idee!!Python 3,
8482 Bytesquelle
Pyth,
23212018 BytesAusgabe als Array. Es gibt ein Literal
\x80
zwischen dem Backslash und dem C, das ich durch ein ersetzt habe•
.Probieren Sie es hier aus .
quelle
Jolf, 26 Bytes
Probieren Sie es hier aus! Testsuite
Erläuterung
quelle
Bash + GNU-Dienstprogramme + ASCII , 36
Nicht sicher, ob die Verwendung des
ascii
Dienstprogramms zulässig ist. Die Eingabe wird als Befehlszeilenparameter verwendet.ascii
kann unter Ubuntu mit installiert werdensudo apt-get install ascii
.quelle
Javascript ES6, 89 Zeichen
Prüfung:
quelle
Lua, 147 Bytes
Ich glaube nicht, dass ich viel mehr Golf spielen kann, ich habe viele Möglichkeiten getestet, und hier kommt die kürzeste. Selbst die Verwendung eines alten Compilers, der die veraltete Funktion enthält,
table.foreach(table,function)
spart einige Bytes nicht.Dieses Programm verwendet eine Zeichenfolge als Argument und druckt die Verkettung von Tabellenwerten, die durch Leerzeichen getrennt sind.
Ungolfed und Erklärungen
Wenn Sie sich überlegen, warum es einen Variablensatz gibt, der jedoch nicht in einem Golfcode verwendet wird (die Variable
_
in der for-Schleife), finden Sie hier folgende Gründe :Sie haben zwei Möglichkeiten, ein Array in Lua zu durchlaufen, entweder in einem for-Stil:
oder in einem foreach-Stil:
Ich brauchte die in der Tabelle enthaltenen Werte,
{8,10,16}
da es sich um die verschiedenen Basen handelt, über die ich iterieren muss. Bei Funktionen mit Mehrfachrückgabe können Sie jedoch nicht auswählen, welche Sie tatsächlich zurückgeben möchten. Sie folgen einer Reihenfolge. Um die Variablevalue
gesetzt zu haben, muss ich auch den Wert von fangenkey
: das nennen wir einen Dummy_
.quelle
C (Funktion), 76
Ideone.
quelle
j*=j,j/=6
istj=j*j/6
j*=j/6
j<20,
Der Komma-Operator verwirft den gesamten Effekt.JavaScript ES6,
8988 Byte1 Byte dank Neil gespeichert!
Gibt ein Array zurück. Wenn das nicht in Ordnung ist, funktioniert dies für zusätzliche 8 Bytes und zeigt die möglichen Übereinstimmungen an.
Code-Snippet anzeigen
quelle
47
.Number()
erfordert0o
,eval
ist aber mit nur zufrieden0
. Entschuldigung für die Verwirrung.R 84 Bytes
wird verwendet
strtoi
, um in jede der Basen zu konvertieren und dann in Zeichen zu konvertieren, wenn sie sich im entsprechenden Bereich befinden. Könnte 4 weitere Bytes durch Entfernen sparen,cat
wenn wir das Standarddrucken von Zeichen zulassen (eingewickelt""
)quelle