Nehmen Sie auf der Grundlage einer Liste von Zahlen und ihren entsprechenden Buchstaben eine Zeichenfolge-Eingabe vor, ersetzen Sie die Zeichen dieser Zeichenfolge durch die entsprechende Zahl / den entsprechenden Buchstaben und geben Sie das Ergebnis aus.
Aufführen
- 1 = a
- 2 = b
- 3 = c
- 4 = d
- 5 = e
- 6 = f
- 7 = g
- 8 = h
- 9 = i
- 0 = j
Eingang
thisisastring1124
Ausgabe
t89s9s1str9n7aabd
Regeln
- Zahlen entsprechen nur Kleinbuchstaben.
- Alle Zeichen außerhalb der Liste bleiben unverändert.
- Eingabezeichenfolge darf keine Leerzeichen enthalten.
- Es ist entweder ein vollständiges Programm oder eine vollständige Funktion zulässig.
- Da es sich um Code-Golf handelt, gewinnen die wenigsten Bytes.
Antworten:
Bash, 18 Bytes
Probieren Sie es online!
quelle
Python 3 ,
76-68BytesProbieren Sie es online!
quelle
Perl 5 , 17 Bytes
Probieren Sie es online!
quelle
05AB1E ,
139 BytesProbieren Sie es online!
Erläuterung
quelle
Perl 6 ,
4523 BytesProbieren Sie es online!
Nur ein einfacher Transliterations-Regex.
quelle
TR/1..90a..j/a..j1..90/
tio.run/##K0gtyjH7n1upoJamYKvwvzokSN9QT8/SIFFPL0sfRIB5@rX/...Retina 0.8.2 , 12 Bytes
Probieren Sie es online! Erläuterung:
Führen Sie eine Transliteration durch.
Die Quellenliste ist die Buchstaben
a-j
, dann0
, dann die Ziffern9-1
.Die Zielliste ist die Ursprungsliste umgekehrt, die Ziffern , dh
1-9
, dann0
, dann die Buchstabenj-a
.quelle
J , 38 Bytes
Probieren Sie es online!
quelle
Python 2 ,
82 bis78 BytesProbieren Sie es online!
-4 mit Dank an @ovs
quelle
JavaScript (ES6), 66 Byte
Probieren Sie es online!
quelle
R , 40 Bytes
Probieren Sie es online!
Überraschenderweise ist R bei dieser Art von String- Herausforderung anständig , da es eine
tr
ähnliche Funktion wie in der Bash-Antwort hat . Keine Ahnung warum es existiert, aber ich bin dankbar dafür!quelle
MS-SQL, 71 Bytes
Die neue SQL 2017-Funktion
TRANSLATE
führt die Ersetzung einzelner Zeichen durch und ist daher ideal für diesen Zweck geeignet. Siehe meine ähnliche Antwort in einer vorherigen Herausforderung .Die Eingabe erfolgt über eine bereits vorhandene Tabelle t mit der Spalte varchar v , je unseren IO Regeln . Um nur Kleinbuchstaben zu ersetzen, muss die Tabelle mit einer Sortierung erstellt werden, bei der zwischen Groß- und Kleinschreibung unterschieden wird :
quelle
Gelee , 16 Bytes
Probieren Sie es online!
quelle
Pyth , 13 Bytes
Probieren Sie es hier aus!
Erläuterung
quelle
Haskell ,
8066 BytesProbieren Sie es online!
quelle
REXX, 57 Bytes
quelle
C (gcc) ,
81 bis72 BytesVielen Dank an Giacomo Garabello für die Vorschläge.
Probieren Sie es online!
quelle
putchar(...)
->*s=...
und andere 4 durch Austausch*s-48U<11
mit*s<59
Online ausprobieren!*s<59
bricht ab, wenn Zeichen wie$
in der Eingabe sind, weshalb ich dies tat*s-48U
([0..47] wird zu [-48 ..- 1], was zu einem großen vorzeichenlosen Wert wird.) Da die Frage nicht angab, ob nicht -Alben galten, ich ging mit der eher konservativen Interpretation um.Powershell, 94 Bytes
Testskript:
Erläuterung
$args
- Argumentstrings$args|% t*y
- erweitert auf|ForEach-Object -Method ToCharArray
Äquivalent von"$args".ToCharArray()
($s='1a2b3c4d5e6f7g8h9i0j').IndexOf($_)
- Findet ein Zeichen in der Zeichenkette, gibt eine Position zurück oder -1, wenn es nicht gefunden wird. $ S speichert den String, der ein gepaartes Zeichen enthält, an Nachbarpositionen, die sich um das letzte Bit unterscheiden: 0 + 1, 2 + 3, 4 + 5 ....if(1+($p=...))
- wenn Position gefunden wurde$p-bxor1
- Bit x positionieren oder 1quelle
-bxor1
.R , 107 Bytes
Probieren Sie es online!
Erster Versuch, definitiv verbesserungsfähig ...
quelle
chartr
Ist dein Freund hier, denke ich.Rust , 96 Bytes
Probieren Sie es online!
Nicht Unicode-sicher, wenn es noch länger wäre.
quelle
K4 , 38 Bytes
Lösung:
Erläuterung:
Suchen Sie jedes Zeichen in der Liste
"abcdefghij1234567890"
und indexieren Sie dann in der Liste"1234567890abcdefghijX"
woX
sich das ursprüngliche Zeichen befindet.Benötigen Sie einen kürzeren Weg, um die Saiten zu bauen ...
Bonus:
Eine andere Lösung für 38 Bytes :
quelle
Yabasic , 135 Bytes
Nimmt Eingaben von der Konsole und Ausgaben an die Konsole.
Probieren Sie es online!
quelle
Japt ,
4442 BytesProbieren Sie es online!
quelle
sed, 44 bytes
Ein bisschen langweilig, gebe ich zu.
Testen:
quelle