使用我发布的这段代码,如果我要运行“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()