(尽管我们不会找到Find或捕捉到tryCatch)
这是实现一些有趣的R函数的多部分系列的第二部分。第一部分可以在这里找到。
任务:
您将以尽可能少的字节实现R的match功能。
输入:
x,可能是空的整数列表/数组table,可能是空的整数列表/数组nomatch,一个整数值incomparables,可能是空的整数列表/数组
输出:
- 一个
O长度等于的整数的单个数组/整数列表x,其中每个值O[i]表示以下任一值:- 第一个值的索引
j,其中tabletable[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。