Получив строку, верните таблицу, в которой первый столбец содержит уникальные буквы строки в порядке появления, а последующие столбцы перечисляют индексы этой буквы в строке, используя индексацию на основе нуля или единицы. Горизонтальные пробелы не имеют значения, если крайний левый столбец выровнен по вертикали. Индексы должны быть в порядке возрастания слева направо.
Примеры
Используя индексацию с нуля и учитывая "abracadabra", верните
a 0 3 5 7 10
b 1 8
r 2 9
c 4
d 6
Используя индексирование на основе одного и получив «3141592653589793238462643383279503», верните:
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
Ответы:
APL (Дьялог) , 4 байта
Попробуйте онлайн!
(
⌸
3 байта)Использует индексирование на основе 1.
⌸
является ключевым оператором. Здесь он ведет себя как монадический оператор. Он применяет функцию,
, объединяет левый аргумент с правым аргументом, к каждому уникальному элементу в своем правом аргументе и индексам этого уникального элемента в исходном аргументе.источник
Haskell , 86 байт
Определяет функцию,
f
которая возвращает строку, содержащую этот вывод.Попробуйте онлайн!
Как?
источник
[' ':show i|(i,c)<-zip[0..]s,c==x]
.kdb + / q , 5 байт
Встроенные здания потрясающие
Я обычно играю в гольф в k , но 2-байтовая k-версия (
=:
) плохо форматирует выводРезультаты точно такие же, но форматирование потеряно. Чтобы отформатировать и удалить возвращаемый объект, мы фактически собираем больше байтов, чем версия q.
источник
Python, 96 байт
попробуйте это онлайн!
источник
MATL , 11 байт
Выходные индексы основаны на 1.
Попробуйте онлайн!
источник
Pyth , 13 байт
Попробуйте онлайн!
источник
Желе , 7 байт
Попробуйте онлайн!
источник
05AB1E , 14 байтов
Попробуйте онлайн!
объяснение
источник
Mathematica, 85 байт
с использованием индексации по одному
источник
JavaScript (ES Draft), 77 байт
88 байт в старых браузерах:
источник
PHP , 82 байта
Попробуйте онлайн!
источник
QBIC , 95 байт
объяснение
Это копирует важные части моего ответа на этот вызов :
Образец прогона:
источник
C (лязг) , 176 байт
Конечно, это самый длинный ответ здесь ...
Попробуйте онлайн!
источник
Python 3,
111106 байтrepl.it
источник
C # , 138 байт
источник
F # , 120 байтов
Более читаемая версия:
Seq.indexed
создает новую последовательность, содержащую кортежи, которые состоят из исходного элемента и его индекса на основе 0 в исходной последовательности.Все остальное самоочевидно, что никогда не бывает хорошо для гольфа!
источник
R ,
8077 байтовПопробуйте онлайн!
анонимная функция; выводит результат 1 с индексом с завершающим переводом строки.
источник
J 11 байт
Попробуйте онлайн!
источник
Шелуха , 10 байт
Попробуйте онлайн!
Примечание: Husk (или, по крайней мере, команда
¥
) новее, чем этот вызов.объяснение
источник