首页 > 解决方案 > 协同信号的逆排列错误解决方案?

问题描述

我目前正在对代码信号进行逆排列挑战。这里是任务的简要简历:

给定一个排列,产生它的逆排列。

例子

对于 permutation = [1, 3, 4, 2],输出应该是 inversePermutation(permutation) = [1, 4, 2, 3]。

在其他用户给出的解决方案中,我看到了这一点:

return numpy.argsort(*eval(dir()[0])) + 1

但我不认为这是正确的,因为即使代码通过了以下测试: input [1, 3, 4, 2] 预期输出: [1, 4, 2, 3] input [1, 2, 3] 预期输出: [1, 2, 3] 这是由 codesignal 验证的唯一通过挑战的测试,当我使用以下数组尝试此代码时: [3, 0, 2, 7] 我得到这个: [2, 3, 1, 4]。根据挑战描述,这是完全错误的。我希望得到这个输出:[3, 2, 7, 0]。

那么我该怎么做?这段代码是错误的还是什么?

标签: pythonarrayspermutation

解决方案


从在线定义:“逆排列是一种排列,您可以通过在数组中元素值指定的位置插入元素的位置来获得这种排列”

我感觉预期的输入是n个数字序列,n在范围(1,n)内。

在您的示例中,您包含 0 和超过 list.len() 的数字


推荐阅读