假设我们有一个包含 n 个非负整数的隐藏数组 arr。现在这个数组被编码到另一个长度为 n-1 的数组 enc 中。所以这里 enc[i] = arr[i] XOR arr[i+1]。如果我们先有编码的 enc 数组和一个整数,即实际数组的第一个元素,我们必须找到原始数组。
所以,如果输入像 enc = [8,3,2,7], first = 4,那么输出将是 [4, 12, 15, 13, 10]。
让我们看看以下实现以获得更好的理解 -
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]