Podany ciąg zwraca tabelę, w której pierwsza kolumna ma unikalne litery ciągu w kolejności występowania, a kolejne kolumny zawierają listę indeksów tej litery w łańcuchu, stosując indeksowanie zerowe lub jeden. Poziome białe znaki nie mają znaczenia, o ile kolumna najbardziej po lewej stronie jest wyrównana pionowo. Wskaźniki muszą być w porządku rosnącym od lewej do prawej.
Przykłady
Korzystając z indeksowania zerowego i podając „abrakadabra”, zwróć
a 0 3 5 7 10
b 1 8
r 2 9
c 4
d 6
Korzystając z indeksowania opartego na jednostkach i podanego „3141592653589793238462643383279503”, zwróć:
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
Odpowiedzi:
APL (Dyalog) , 4 bajty
Wypróbuj online!
(
⌸
ma 3 bajty)Wykorzystuje indeksowanie 1.
⌸
jest kluczowym operatorem. Tutaj zachowuje się jak operator monadyczny. Stosuje funkcję,
, łącząc lewy argument z prawym argumentem, do każdego unikalnego elementu w swoim prawym argumencie i indeksów tego unikalnego elementu w oryginalnym argumencie.źródło
Haskell , 86 bajtów
Definiuje funkcję,
f
która zwraca ciąg zawierający to wyjście.Wypróbuj online!
W jaki sposób?
źródło
[' ':show i|(i,c)<-zip[0..]s,c==x]
.kdb + / q , 5 bajtów
Wbudowane są super
Zwykle gram w golfa w k , ale 2-bajtowa wersja k (
=:
) nie ładnie formatuje wynikuWyniki są dokładnie takie same, ale formatowanie zostało utracone. Aby sformatować i usunąć obiekt zwracany, faktycznie pobieramy więcej bajtów niż wersja q
źródło
Python, 96 bajtów
spróbuj online!
źródło
MATL , 11 bajtów
Wskaźniki wyjściowe są oparte na 1.
Wypróbuj online!
źródło
Pyth , 13 bajtów
Wypróbuj online!
źródło
Galaretka , 7 bajtów
Wypróbuj online!
źródło
05AB1E , 14 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Mathematica, 85 bajtów
za pomocą indeksowania opartego na jednym
źródło
JavaScript (wersja robocza ES), 77 bajtów
88 bajtów w starszych przeglądarkach:
źródło
PHP , 82 bajty
Wypróbuj online!
źródło
QBIC , 95 bajtów
Wyjaśnienie
Kopiuje to znaczną część mojej odpowiedzi na to wyzwanie :
Przykładowy przebieg:
źródło
C (brzęk) , 176 bajtów
Oczywiście jest to najdłuższa odpowiedź tutaj ...
Wypróbuj online!
źródło
Python 3,
111106 bajtówrepl.it
źródło
C # , 138 bajtów
źródło
F # , 120 bajtów
Bardziej czytelna wersja:
Seq.indexed
tworzy nową sekwencję zawierającą krotki złożone z oryginalnego elementu i jego indeksu 0 w oryginalnej sekwencji.Reszta jest dość oczywista, co nigdy nie jest dobre dla golfa!
źródło
R ,
8077 bajtówWypróbuj online!
anonimowa funkcja; wypisuje wynik 1-indeksowany z końcowym znakiem nowej linii.
źródło
J , 11 bajtów
Wypróbuj online!
źródło
Łuska , 10 bajtów
Wypróbuj online!
Uwaga: Łuska (a przynajmniej polecenie
¥
) jest nowsza niż to wyzwanie.Wyjaśnienie
źródło