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

2024-04-26 18:14:01 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我要运行“python inverse_排列.py5 3 4 0 1 2“我会收到“3 4 5 1 2 0”,这是正确的,但是当我运行程序来测试所有python程序的正确性时,我收到以下不等式,导致我的答案不正确:自我评价(得到,寻求)断言错误:“3 45 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()

Tags: orinimport程序forlenexistssys