Python程式:查詢所有配對按位與的異或和
假設我們有兩個陣列arr1和arr2。列表的異或和是其所有元素的按位異或。如果列表只有一個元素,則其異或和將是元素本身。現在,考慮列表包含arr1[i] AND arr2[j](按位與)的結果,對於每個索引對(i, j),其中0 <= i < arr1的長度,並且0 <= j < arr2的長度。我們需要找到該列表的異或和。
因此,如果輸入類似於arr1 = [5,3,4] arr2 = [2,6],則輸出將為0,因為列表為[5 AND 2, 5 AND 6, 3 AND 2, 3 AND 6, 4 AND 2, 4 AND 6] = [0, 4, 2, 2, 0, 4],現在異或和為[0 XOR 4 XOR 2 XOR 2 XOR 0 XOR 4] = 0
為了解決這個問題,我們將遵循以下步驟:
xor1 := 0
xor2 := 0
對於arr1中的每個a,執行:
xor1 := xor1 XOR a
對於arr2中的每個a,執行:
xor2 := xor2 XOR a
返回xor1 AND xor2
示例
讓我們看下面的實現以更好地理解
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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP