Geben Sie bei einer gegebenen Zeichenfolge eine Tabelle zurück, in der die ersten Spalten die eindeutigen Buchstaben der Zeichenfolge in der Reihenfolge ihres Auftretens enthalten. In den nachfolgenden Spalten werden die Indizes dieses Buchstabens in der Zeichenfolge mit einer auf Null oder Eins basierenden Indizierung aufgelistet. Horizontale Leerzeichen spielen keine Rolle, solange die Spalte ganz links vertikal ausgerichtet ist. Die Indizes müssen von links nach rechts aufsteigend sortiert sein.
Beispiele
Verwenden Sie die nullbasierte Indizierung und geben Sie "abracadabra" zurück
a 0 3 5 7 10
b 1 8
r 2 9
c 4
d 6
Wenn Sie eine einseitige Indizierung verwenden und "3141592653589793238462643383279503" angeben, geben Sie Folgendes zurück:
3 1 10 16 18 25 26 28 34
1 2 4
4 3 20 24
5 5 9 11 32
9 6 13 15 31
2 7 17 22 29
6 8 21 23
8 12 19 27
7 14 30
0 33
Antworten:
APL (Dyalog) , 4 Bytes
Probieren Sie es online!
(
⌸
ist 3 Bytes)Verwendet 1-basierte Indizierung.
⌸
ist der Key Operator. Hier verhält es sich wie ein monadischer Operator. Es wendet die Funktion,
, das linke Argument mit dem rechten Argument zu verketten, auf jedes eindeutige Element in seinem rechten Argument und auf die Indizes dieses eindeutigen Elements im ursprünglichen Argument an.quelle
Haskell , 86 Bytes
Definiert eine Funktion,
f
die einen String mit dieser Ausgabe zurückgibt.Probieren Sie es online!
Wie?
quelle
[' ':show i|(i,c)<-zip[0..]s,c==x]
.kdb + / q , 5 Bytes
Builtins sind fabelhaft
Normalerweise spiele ich Golf in k , aber die 2-Byte-k-Version (
=:
) formatiert die Ausgabe nicht gutDie Ergebnisse sind exakt gleich, aber die Formatierung geht verloren. Um das Rückgabeobjekt zu formatieren und zu entfernen, nehmen wir tatsächlich mehr Bytes auf als die q-Version
quelle
Python, 96 Bytes
versuche es online!
quelle
MATL , 11 Bytes
Ausgabeindizes basieren auf 1.
Probieren Sie es online!
quelle
Pyth , 13 Bytes
Probieren Sie es online!
quelle
Gelee , 7 Bytes
Probieren Sie es online!
quelle
05AB1E , 14 Bytes
Probieren Sie es online!
Erläuterung
quelle
Mathematica, 85 Bytes
Verwenden einer einseitigen Indizierung
quelle
JavaScript (ES Draft), 77 Byte
88 Bytes in älteren Browsern:
quelle
PHP , 82 Bytes
Probieren Sie es online!
quelle
QBIC , 95 Bytes
Erläuterung
Dies kopiert wesentliche Teile meiner Antwort auf diese Herausforderung :
Probelauf:
quelle
C (klirrend) , 176 Bytes
Natürlich ist dies die längste Antwort hier ...
Probieren Sie es online!
quelle
Python 3,
111106 Bytesrepl.it
quelle
C # , 138 Bytes
quelle
F # , 120 Bytes
Eine lesbarere Version:
Seq.indexed
Erstellt eine neue Sequenz mit Tupeln, die aus dem ursprünglichen Element und dem auf 0 basierenden Index in der ursprünglichen Sequenz bestehen.Der Rest ist ziemlich selbsterklärend, was für das Golfen nie gut ist!
quelle
R ,
8077 BytesProbieren Sie es online!
eine anonyme Funktion; druckt das Ergebnis 1-indiziert mit einer nachfolgenden Newline.
quelle
J , 11 Bytes
Probieren Sie es online!
quelle
Schale , 10 Bytes
Probieren Sie es online!
Hinweis: Husk (oder zumindest der Befehl
¥
) ist neuer als diese Herausforderung.Erläuterung
quelle