Завдання
Напишіть програму або функцію, вхідною інформацією якої є список / масив X цілих чисел, а виведенням яких є список наборів цілих чисел Y , таких, що для кожного елемента e у кожному наборі Y [ i ], X [ e ] = i та таким чином, що загальна кількість елементів у величезних кількостях в Y дорівнює числу елементів в X .
(Це в основному та сама операція, що і повернення хештелю / словника, за винятком застосованих до масивів.)
Приклади
Ці приклади передбачають індексацію на основі 1, але замість цього ви можете використовувати індексацію на основі 0.
X Y
[4] [{},{},{},{1}]
[1,2,3] [{1},{2},{3}]
[2,2,2] [{},{1,2,3}]
[5,5,6,6] [{},{},{},{},{1,2},{3,4}]
[6,6,5,5] [{},{},{},{},{3,4},{1,2}]
Роз'яснення
- За бажанням ви можете представити набір як список. Якщо ви це зробите, порядок його елементів не має значення, але ви можете не повторювати елементи.
- Ви можете використовувати будь-який розумний однозначний формат вводу / виводу; наприклад, ви могли відокремити елементи набору з пробілами, а самі набори - новими рядками.
- Y має бути кінцево довгим і, принаймні, досить довгим, щоб усі елементи X були індексами масиву. Однак він може бути довше максимального елемента X (зайві елементи будуть порожніми наборами).
- Усі елементи X будуть дійсними індексами масиву, тобто невід'ємними цілими числами, якщо ви використовуєте індексацію на основі 0, або додатні цілі числа, якщо ви використовуєте індексацію на основі 1.
Стан перемоги
Як код-гольф виклик, коротше краще.
[5,5,6,6]
і [6,6,5,5]
можуть бути однаковими?
[5,5,6,6]
і [6,6,5,5]
не можуть мати однаковий вихід, але вихід для [5,5,6,6]
також може бути, наприклад, [{},{},{},{},{2,1},{4,3}]
.
[{0},{0},{0},{0},{1,2},{3,4}]
був би дійсний вихід [5,5,6,6]
?