Codieren Sie diese Zeichenfolge bei einer Zeichenfolge, die nur Kleinbuchstaben enthält, mit der Alphabet-Chiffre.
So codieren Sie mit der Alphabet-Chiffre (ich verwende das Beispiel hello
):
- Konvertieren Sie zunächst jeden Buchstaben in der Zeichenfolge in eine Zahl, die von der Position im Alphabet abhängt (
a
=1
,b
=2
usw.). Beispiel:8
5
12
12
15
- Füllen Sie jede Zahl mit
0
s auf zwei Zeichen auf . Beispiel:08
05
12
12
15
- Beitreten. Beispiel:
0805121215
Testfälle
helloworld -> 08051212152315181204
codegolf -> 0315040507151206
alphabetcipher -> 0112160801020520030916080518
johncena -> 1015081403051401
Denken Sie daran, das ist Code-Golf , also gewinnt der Code mit der geringsten Anzahl von Bytes.
Antworten:
05AB1E ,
116 BytesCode:
Erläuterung:
Zuerst konvertieren wir die Zeichenkette in ihre ASCII-Werte.
codegolf
würde werden:Um zu den Indizes des Alphabets zu gelangen, subtrahieren Sie
96
:Um mit Nullen aufzufüllen, fügen Sie
100
zu jedem Element das erste Zeichen jedes Int hinzu und entfernen Sie es. Für das obige Beispiel+100
wäre:Und das Entfernen des ersten Zeichens von jedem würde dazu führen, dass:
Wir können beide Schritte über (dem
-96
und dem+100
) Teil zu nur zusammenführen+4
. Für den Code:Probieren Sie es online!
quelle
¦
man nochmal?Python 2, 42 Bytes
Teste es auf Ideone .
quelle
lambda s:''.join(`ord(x)+4`[1:]for x in s)
Pyth,
1110 BytesVersuch es! Mein erster Versuch bei Pyth.
Python-Äquivalent:
quelle
C
5543 Bytesideone
quelle
printf("%02d",*c++-96);}
ist kürzer und gültig, wenn ich mich nicht irre.Python, 46 Bytes
Ziemlich einfach. Probieren Sie es auf repl.it!
quelle
Gelee ,
97 BytesTryItOnline
Wie?
quelle
O+4DḊ€FṾ€
der gleichen Zählung, vielleicht golfableO+4Ṿ€Ḋ€
spart 2 Bytes.Haskell,
vierundvierzig 3028 BytesDurch die Verwendung des
+4
Ansatzes aus Adnans Antwort werden 14 Byte eingespart.Probieren Sie es auf Ideone. Verwendung:
Zwei Bytes weniger dank xnor . Alte Version:
quelle
Perl, 29 Bytes
28 Byte Code +
-n
Flag.Laufen mit:
quelle
JavaScript (ES6),
5249 BytesDie Rekursion war 3 Byte kürzer als
.replace
:parseInt(s,36)
ist etwas für jeden Ansatz länger, weil Sie ändern müssen ,4
um91
:quelle
Japt, 10 Bytes
Wird wahrscheinlich nicht kürzer ...
Testen Sie es online!
Erläuterung
quelle
Java 7,60 Bytes
quelle
char[]
ein stehtString
.MATL,
1211 Bytes1 Byte gespart dank @Luis
Probieren Sie es online
quelle
Hexagony , 33 Bytes
Probieren Sie es online!
Mm .. habe ein paar No-Ops im Hexagon, also habe ich das heutige Datum eingetragen.
Erweitertes Formular mit Datum, das durch No-Ops ersetzt wurde
10
und verschiebe den Speicherzeiger irgendwohin ...$
Überspringt den Spiegel und,
liest ein Byte.<
Geäst:-1
was nicht positiv ist), geht es zum@
Programm und beendet es.95
(dekrementierta
), und dann wird gedrucktresult / 10
(Ganzzahldivision) undresult % 10
erneut eine Schleife ausgeführt.quelle
Vim, 60 Tastenanschläge
Eine fast vollständig auf Regex basierende Lösung. Wie üblich ist die Verwendung des Eval-Registers zu lang.
quelle
PHP, 58 Bytes
quelle
$argn
47 Bytes TIO eingeben .PowerShell v2 +, 44 Byte
Nimmt Eingaben auf
$args[0]
,char
wandelt sie als -array um und führt sie in eine Schleife ein. Jede Iteration, nehmen wir den aktuellen Zeichen$_
Modulo32
, die implizit als ASCII - Wert wirft. Praktischerweise ;-),a = 1, b = 2
das-f
stimmt usw. Das wird in den ormat-Operator eingespeist"{0:D2}"
, der mit einer Zeichenfolge arbeitet , die ein zweistelliges Minimum angibt (dh, wenn erforderlich, wird eine führende Null vorangestellt). Diese Ziffernfolgen werden in Parens eingekapselt,-join
zu einer Zeichenfolge zusammengefasst und in der Pipeline belassen. Die implizite AusgabeWrite-Output
erfolgt beim Programmabschluss.quelle
Perl, 24 Bytes
Beinhaltet +1 für
-p
Geben Sie Input auf STDIN:
encode.pl
quelle
4+ord$&
stattdessen5+ord$&
;-)exec rev
print
es 5 Bytes und<>
2 weitere Bytes sind. Ich fragte mich, was das 1-Byte-Umkehrbyte ist, von dem ich noch nichts gehört hatte.DASH , 27 Bytes
Anwendungsbeispiel:
Erläuterung
quelle
Batch,
256239237 BytesÜbernimmt die Eingabe für STDIN.
quelle
IBM PC DOS 8088 Assembly,
332827 BytesZusammengesetzte Binärdatei:
Zerlegt:
Standalone-PC-DOS-Programm. Eingabezeichenfolge von der Befehlszeile, Ausgabe an die Konsole.
I / O:
quelle
MATL , 11 Bytes
Probieren Sie es online!
quelle
Ruby,
5346 Bytes->s{s.chars.map{|c|(c.ord-96).to_s.rjust(2,?0)}.join}
->s{s.chars.map{|c|(c.ord+4).to_s[1..2]}.join}
quelle
R
7151 BytesDank Billywob 20 Bytes gespart. Übernimmt die Eingabe von stdin und die Ausgabe von stdout.
Beispiele:
quelle
utf8toInt(scan(,"))-96
anstelle der gesamten Match-Sache verwenden. Denken Sie nicht, dass es einen besseren Weg gibt, mit der Polsterung umzugehen.formatC
früher versucht, aber es hat sich herausgestellt, dass ein Byte mehr benötigt wird als der aktuelle Ansatz.Eigentlich 10 Bytes
Verwenden Sie den übersichtlichen Algorithmus in Adnans 05AB1E-Antwort . Golfvorschläge sind willkommen. Probieren Sie es online!
Ungolfing
quelle
Groovy, 51 Bytes
quelle
Labyrinth, 40 Bytes
quelle
Befunge-98, 19 Bytes
quelle
Groovy - 31 Bytes
Groovige Konvertierung der NumberKnot-Lösung in Java:
Beispiel hier mit verschiedenen Optionen:
http://ideone.com/vd0dTX
quelle
Pyke, 7 Bytes
Probieren Sie es hier aus!
quelle
C #, 54 Bytes
quelle