在 Python 中查找解码异或排列的程序

假设我们有一个数组 enc。有一个数组 perm 是第一个n(odd)正整数的排列。这个列表将被编码到长度为 n-1 的数组 enc 中,这样 enc[i] = perm[i] XOR perm[i+1]。我们必须找到原始数组 perm。

所以,如果输入像 enc = [2,5,6,3],那么输出将是 [7, 5, 0, 6, 5],这里 [7 XOR 5 XOR 0 XOR 6 XOR 5] = [ 2, 5, 6, 3]

示例

让我们看看以下实现以获得更好的理解 -

def solve(enc):

   n = len(enc)

   result = [0] * (n+1)

   x = 0

   for i in range(1, n+2):

      x ^= i

   result[0] = x

   for i in range(1, n+1, 2):

      result[0] ^= enc[i]

   for i in range(1, n+1):

      result[i] = result[i-1] ^ enc[i-1]

   return result

enc = [2,5,6,3]

print(solve(enc))

输入

[2,5,6,3]
输出结果
[7, 5, 0, 6, 5]

以上是 在 Python 中查找解码异或排列的程序 的全部内容, 来源链接: utcz.com/z/350420.html

回到顶部