Ein Programm schreiben , die einen String aus druckbaren Zeichen (ASCII 20-7E) und eine ganze Zahl als ihren Eingang nimmt n
in [2,16] , und führt die folgende Modifikation an der Schnur.
- Jedes Zeichen in der Zeichenkette in ihrem ASCII-Code umgesetzt (die angegebenen Beispiele sind in hexadezimal, wenn Basis 10 auch annehmbar ist).
- Die ASCII - Codes werden auf Basis umgewandelt
n
und miteinander verkettet. - Die neue Zeichenfolge wird in alle anderen Zeichen aufgeteilt. Wenn es eine ungerade Anzahl von Zeichen sind, dann wird das letzte Zeichen vollständig entfernt.
- Druck-ASCII-Codes (in Basis 16) werden zurück in ihre Zeichen konvertiert, während nicht druckbare ASCII-Codes entfernt werden.
- Die resultierende Zeichenfolge wird gedruckt.
Testfall
Eingang
Hello, World!
6
Schritte
Hello, World!
48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21
2002453003003031125222330331030024453
20 02 45 30 03 00 30 31 12 52 22 33 03 31 03 00 24 45
Die Ausgabe dieses Programms ist E001R"31$E
.
Dies ist Codegolf, daher gelten die Standardregeln. Kürzester Code in Bytes gewinnt.
7
die Zeichenfolge beispielsweiseJ
die SchritteJ
->50
->101
->10
-> durchlaufen(no output)
, ebenso wie die ZeichenfolgeK
oderL
.H
ASCII 72 (dezimal) oder 48 (hex), aber was ich brauche , ist 200 (Basis 6). Die ganze Zeile 2 im Beispiel ist meiner Meinung nach nutzlos und verwirrendAntworten:
Pyth - 22 Bytes
Hoffe viel mehr Golf zu spielen, ziemlich unkompliziert.
Probieren Sie es hier online aus .
quelle
q3l`T
ist wunderbar.fgTd
genug sein?CJam, 33 Bytes
Nimmt die Eingabe in der Form
6 "Hello, World!"
. Teste es hier.Siehe Dennis Antwort für eine ähnliche , aber bessere Lösung mit einer schönen Erklärung.
quelle
Bash + gemeinsame Linux-Utils, 118
quelle
printf %s "$1"
inecho -n "$1"
2 Bytes zu speichern-e
. Versuchenecho -n "-e"
CJam, 24 Bytes
Beachten Sie, dass sich zwischen
'
und ein DEL-Zeichen (0x7F) befindet,
. Versuchen Sie es online in dem CJam Dolmetscher .Wie es funktioniert
quelle
DEL
Zeichen aus der Ausgabe filtern .JavaScript (ES6), 137
147Verwenden der ausführlichsten in JavaScript verfügbaren Funktionen
quelle
x=>x>=
[for(z of ...)if(...)...]
anstelle vonmap(...).filter(...)
x=>x>=
sie weg istJulia, 118 Bytes
Ungolfed:
quelle
Mathematica, 134 Bytes
Wird eine Funktion erlaubt:
Mathematica, 112 Bytes
quelle
TeaScript, 23 Bytes
TeaScript ist JavaScript zum Golfen
Relativ unkompliziert, aber angenehm kurz. Ich kann wahrscheinlich noch ein paar Charaktere mit ein paar weiteren Operatoren spielen. Einige weitere neue Funktionen könnten auch in der Lage sein, um abgeholzt einige Bytes verwendet werden.
Ungolfed && Erklärung
quelle
Ruby 92
Online Test hier .
quelle
Python 2, 174 Bytes
Probieren Sie es hier aus
Nicht wirklich das beste Werkzeug für den Job. Da Python keine Funktion zum Konvertieren in eine beliebige Basis hat, musste ich meine eigene implementieren. Zumindest hat das Spaß gemacht - besonders, wenn man einen [geringfügig] kürzeren Ausdruck für die Ziffern gefunden hat als
"0123456789ABCDEF"[n%b]
. Beim Durchlaufen von jeweils zwei Zeichen stellte ich fest, dass einewhile
Schleife etwas kürzer war als ein funktionaler Ansatz.181 Bytes als volles Programm:
quelle
MATLAB, 103 Bytes
Ich habe eine Funktion k geschrieben , die einen String s und eine ganze Zahl n als Eingabe nimmt. z.B:
gibt
Das Ärgerlichste, das ich umgehen musste, ist, dass beim Konvertieren zur Basis n führende Nullen angezeigt werden . Diese aus dem Array herauszuholen, das nach jedem zweiten Zeichen aufgeteilt werden sollte, kostete eine ganze Menge Bytes. Nicht sicher, ob es möglich ist, weitere Bytes mit diesem Ansatz zu speichern.
quelle
PHP - 286 Bytes
Geben Sie die Zeichenfolge
$s
und die Ganzzahl ein$b
.Übergeben Sie den Wert an
GET["s"]
.quelle