任务
编写一个程序或函数,其输入是整数的列表/数组X,输出是整数Y的列表,这样对于每个集合Y中的每个元素e [ 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}]
澄清说明
- 如果愿意,可以将一个集合表示为一个列表。如果这样做,其元素的顺序无关紧要,但是您可能不会重复元素。
- 您可以使用任何合理的明确I / O格式;例如,您可以用空格分隔集合的元素,并用换行符分隔集合本身。
- 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]
?