在Python中编写解码XOR数组的程序
假设我们有一个包含n个非负整数的隐藏数组arr。现在,将此数组编码为另一个长度为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的数组
-
对于range 0到enc大小-1的范围内的i,执行以下操作
- 在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]