用于在 Python 中恢复解码 XOR 数组的程序


假设我们有一个隐藏数组 arr,其中包含 n 个非负整数。该数组现在被编码到另一个长度为 n-1 的数组 enc 中。enc[i] = arr[i] XOR arr[i+1]。如果我们有编码 enc 数组和作为实际数组的第一个元素的整数 first,则必须找到原始数组。

所以,如果输入为 enc = [8,3,2,7]、first = 4,则输出将为 [4, 12, 15, 13, 10]。

为了解决这个问题,我们将遵循以下步骤:

  • arr := 仅包含一个元素 first 的数组

  • for i 在 0 到 enc 的大小 - 1 之间,执行

    • 在 arr 的末尾插入 arr[i] XOR enc[i]

  • 返回 arr

示例(Python)

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

 实时演示

def solve(enc, first):
   arr = [first]
   for i in range(0, len(enc)):
      arr.append(arr[i] ^ enc[i])
   return arr

enc = [8,3,2,7]
first = 4
print(solve(enc, first))

输入

[8,3,2,7], 4

输出

[4, 12, 15, 13, 10]

更新于: 18-05-2021

338 次浏览

开启您的职业生涯

完成课程,获得认证

开始
广告
© . All rights reserved.