(尽管我们不会找到Find
或捕捉到tryCatch
)
这是实现一些有趣的R函数的多部分系列的第二部分。第一部分可以在这里找到。
任务:
您将以尽可能少的字节实现R的match
功能。
输入:
x
,可能是空的整数列表/数组table
,可能是空的整数列表/数组nomatch
,一个整数值incomparables
,可能是空的整数列表/数组
输出:
- 一个
O
长度等于的整数的单个数组/整数列表x
,其中每个值O[i]
表示以下任一值:- 第一个值的索引
j
,其中table
table[j]==x[i]
nomatch
,这表明在没有价值table
等于x[i]
或那x[i]
是在列表中incomparables
。
- 第一个值的索引
测试用例
All in the form x, table, nomatch, incomparables -> output
outputs
[], [1,2,3], 0, [5] -> []
[1, 2, 3], [], 0, [5] -> [0, 0, 0]
[9, 4, 3, 6, 3], [9, 8, 7, 6, 5, 4, 3, 2, 1], -1, [4] -> [1, -1, 7, 4, 7]
[8, 6, 7, 5, 3, 0, 9], [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9, 3, 2, 3, 8, 4, 6, 2, 6], 1000, [1] -> [12, 8, 14, 5, 1, 1000, 6]
可以根据需要生成更多的测试用例。
附加规则:
- R具有基于1的索引,但是可以接受一致的基于替代的索引。因此,您可以使用以3或17开头的索引,但必须保持一致,并且必须在答案中指出。
- 如果您选择的语言具有内置的功能,请同时实施您自己的解决方案。
- 解释表示赞赏。
这是代码高尔夫球,因此最短的解决方案以字节为单位!
4
在中incomparables
,因此无法匹配。如果您的语言不支持负数,则可以要求使用非负数,但是请在提交时说明该假设。
make
。