反向置换Python程序没有给出正确的输出

时间:2017-10-15 18:05:20

标签: python

使用我发布的这段代码,如果我要运行“python inverse_permutation.py 5 3 4 0 1 2”我会收到“3 4 5 1 2 0”,这是正确的,但当我运行程序测试所有python程序的正确性,我收到以下不等式导致我的答案是不正确的:self.assertEquals(得到,寻求)断言错误:'3 4 5 1 2 0 \ n'!='3 4 5 1 2 0 \ n' 我将此解释为0和\ n之间的额外空格导致问题。我无法弄清楚额外空间的来源。我花了几个小时试图纠正这个,但没有发现任何东西。

import stdio
import sys
import stdarray

perm = []
for i in range(1, len(sys.argv)):
    perm += [int(sys.argv[i])]
n = len(perm)
exists = stdarray.create1D(n, False)
for i in range(n):
    if (perm[i] < 0) or (perm[i] >= n) or exists[perm[i]]:
        stdio.writeln("Not a permutation")
        sys.exit(0)
    exists[perm[i]] = True
permInverted = [0] * n
for i in range(n):
    permInverted[perm[i]] = i
for element in permInverted:
    stdio.write(str(element) + ' ')
stdio.writeln()

0 个答案:

没有答案