在 Python 中按位 AND 查找所有对的 XOR 和的程序
假设我们有两个数组arr1和arr2。列表的异或和是其所有元素的按位异或。如果列表只有一个元素,那么它的异或和就是元素本身。现在,考虑列表具有每个索引对(i,j)的arr1[i]ANDarr2[j](按位与)的结果,其中0<=i<arr1的长度和0<=j<arr2的长度。我们必须找到该列表的XOR和。
因此,如果输入类似于arr1=[5,3,4]arr2=[2,6],那么输出将为0,因为列表是[5AND2,5AND6,3AND2,3AND6,4AND2,4AND6]=[0,4,2,2,0,4],现在异或和为[0XOR4XOR2XOR2XOR0XOR4]=0
示例
让我们看下面的实现来更好地理解
def solve(arr1, arr2): xor1 = 0 xor2 = 0 for a in arr1: xor1 ^= a for a in arr2: xor2 ^= a return xor1 & xor2 arr1 = [5,3,4] arr2 = [2,6] print(solve(arr1, arr2))
输入
[5,3,4], [2,6]输出结果
0